首页 > 其他分享 >【笔记】图论:2-sat、连通性、欧拉回路选讲

【笔记】图论:2-sat、连通性、欧拉回路选讲

时间:2024-07-30 16:40:53浏览次数:9  
标签:连通 子树 连通性 选讲 SCC leq dfs sat

[AGC059C] Guessing Permutation for as Long as Possible(2-sat)

这个东西十分智障,只需要对于所有 \(a, b, c\),如果询问顺序是 \((a, b), (b, c), (a, c)\),那么不能 \(a<b<c\) 或 \(a>b>c\)。其它的情况(一条链)你一看发现肯定需要出现上述情况,那么这就是充要条件。

你一看你直接对所有询问当作 2-sat 的变量去拆点就能连出来一张无向图,既然是无向图那么连 2-sat 都不用,直接是一个并查集题目。最终答案 \(2^{block/2}\) 其中 \(block\) 是连通块数量,连通块一定是对称的。另外根据我们的过程,一定不会有环。

[NOI2017] 游戏

skipped

[CF587D] Duff in Mafia(2-sat)

这一题的限制超强。对于一个点,你最多只能破坏一条与之相连的边,且同一个点上的同色边不能超过两条,如果有两条同色边则它们必须破坏一条。这就太离谱了,读到这里已经可以前后缀优化 2-sat 建图了(可能还要写个二分)。然而因为同一个点上的同色边不能超过两条,所以你还能发现同色中一定是一堆环和链,环比较简单,链有一个链头可能要和其它人分讨,也是 2-sat 解决的。

[CF1137C] Museums Tour(SCC)

分层图,缩点。你发现城市 \(x\) 的周 \(a\) 与城市 \(x\) 的周 \(b\) 这两个状态不可能出现:它们不在同一 SCC,但是前者能走到后者。因为既然已经能走回城市 \(x\) 的周 \(b\) 了,那么你再重复走 \(d-1\) 轮就能回去周 \(a\) 了。于是就变成 DAG 上 DP。

无标题(SCC)

有⼀张 \(n\) 个点的图,初始没有边。

接下来有 \(m\) 条有向边依次加入图中,保证没有自环,且任意 \(i,j\) 间最多有⼀条边。

每次加入之后,查询如果我们在图中添加⼀些边使得图构成竞赛图,其强连通分量个数的最小值。

\(n\leq 2\times 10^5, m\leq 2\times 10^6\)。

定理:补图上的连通块可以定向成为强连通分量,除非其大小为 \(2\)。

证明:考虑随意定向,此时是竞赛图,其缩点后为一条链。考虑最后一个 SCC,因为补图是连通的,所以它肯定有一条边往回连了,可以反向之,然后递归下去,可以证明原结论。

所以可以先算 \(m\) 条边的答案,反复缩点缩成竞赛图(可能有 SCC 的大小为 \(2\) 要记下)。往前处理询问时,相当于补图上加边,那就能把一个区间的 SCC 缩起来了。

(待修订)[IOI2019] 景点划分(dfs 树)

钦定 \(a\leq b\leq c\)。想象一棵树怎么做,我们只需要找出重心,如果它有 \(\geq a\) 的子树就做完了,如果没有(这里要再证一下,结论是无解)

对于一般图,随机求 dfs 树,求出其重心,如果它有 \(\geq a\) 的子树就做完了。如果没有,考虑这么一个东西,因为 dfs 没有横叉边,这个重心的子树只可能往它头上有连边。维护点集 \(S\),先将重心头上的点加入 \(S\),再考虑重心的子树,如果有往上跨过重心的返祖边则也加入 \(S\),直到 \(|S|\geq a\) 时就有解了。我们其实是在合并子树,显见,直到有解的时候,\(|S|<2a\),推出剩下的点有 \(\geq n-2a\) 个,而

(待修订)[QOJ3301] Economic One-way Roads(耳分解)

(待修订)[QOJ8056] Travel 2(dfs 树)

因为上面这两题赵老师在八中讲了

[UNR #5] 获奖名单

这个东西的核心是将其看作从两端向中间匹配。建出 \(m+1\) 个点,第 \(0\) 个点表示现在左右两端已经匹配,第 \(i\) 个点表示有一端多了一个字符 \(i\)。对于单字符 \(a\),就是 \(0\) 与 \(a\) 连无向边;对于 \(a, b\),就是 \(a, b\) 连无向边,显然。根据总长度是偶数还是奇数,确定走欧拉路径还是欧拉回路。

一个细节问题:从匹配好的状态加两个字符,和它匹配的一定是和他一样的东西,用不到它当且仅当它与 \(0\) 点不连通。那就看一下是否都是重边就好了。

标签:连通,子树,连通性,选讲,SCC,leq,dfs,sat
From: https://www.cnblogs.com/caijianhong/p/18332787

相关文章

  • 【笔记】网络流选讲
    (待修订)连通块(最小割)有\(k\)棵\(n\)个点的树,点带权\(a_i\)可负,求一个权值集合,使得它在\(k\)棵树上都是连通块。\(n\leq50000\)考虑如果固定根,把\(k\)棵树拉出来,则这时,若选择了一个权值,则它在所有树上的父亲都要选。将权值建点,连向它在每棵树上的父亲。跑最大权闭合......
  • Tarjan 算法及连通性问题
    无向图的连通性dfs树dfs树上存在树边和返祖边,不存在横叉边。割点若一点\(u\)是割点,那么必定存在一个儿子,删去\(u\)后和他的父亲不连通。如果不存在,和\(u\)相连的所有点依然联通,那么连通性不变,不是割点。若是根节点,若有至少\(2\)个儿子那么就是割点。判断一个点不......
  • C++ 【元编程】检查类型是否具有成员 hasattr
    在python中,可以使用hasattr判断类型是否具有某个成员。在C++中,有的时候我们要写一个模板函数,需要对模板进行一定的限制时。这些限制可能为“该模板函数仅用于拥有某个成员的类型”。在标准<type_traits>中,规定了一些列如is_copy_assignable等模板常量,用于判断是否拥有拷贝构造......
  • DP选讲做题记录 by 付乙淼
    DP选讲P5074EattheTrees最简单的插头DP,轮廓线和插头可以很轻松存储状态和转移。P4719【模板】"动态DP"&动态树分治P5024[NOIP2018提高组]保卫王国动态DP一般就是简单的DP带单点修改,而且给你放到树上,这样你就不得不写树剖,写树剖就需要维护重链,我们就要写出也就是......
  • 【题解】Solution Set - 杂题选讲「刘君实」
    https://www.becoder.com.cn/contest/5423「HNOI2012」集合选数感觉差不多会。7/25sh杂题听课情况NOI2018冒泡排序【40】几乎不会麦田里的守望者【40】打表找规律、最后dp不太理解星空列车【40】完全不会WereYouLast:知道怎么做,但是不知道为什么是对的A......
  • Tarjan(连通性相关) 笔记
    概念点(vertex)、边(edge)无向图中若图中存在两点可以到达,则称这两个点是连通的(connected)若图中任意两点都连通,则称该无向图为连通图(connectedgraph)若图\(G\)中存在一个连通子图\(H\)(\(H\subseteqG\)),没有严格更大的连通子图\(I\)使\(H\varsubsetneqqI\),则称\(H\)......
  • 暑假好题选讲
    \(TXX\)讲课。\(2024\7\23.\)\(T1.\)首先你可以考虑用\(dp.\)先记棋子脚下的位置为\(v\),动态规划方程:\(f_i=\max\{\dfrac{1}{2}(f_{i-1}+f_{i+1}),v_i\}\)利用这个方程,我们可以把他用\((i,f_i)\)的画在平面上。然后观察这个平面,发现\(i\)位置上面的答案也就是凸......
  • 从 OR-Tools 设置 CP-SAT 求解器的 IntVar 值
    我目前正在使用googleOR-toolsCP-SAT求解器来解决规划问题。我使用IntVars作为日期的表示。所有这些IntVar都在字典中。我有一些可以正常工作的约束,但我想强制求解器使大约2/3的Intvars低于400。我尝试使用BoolVars解决问题,但没有成功,我运行了出于如何将2/3......
  • 2-SAT学习笔记
    Part0:前置知识Tarjan求SCCPart1:初识2-SATsat即Satisfiability(可满足性问题),2-set问题指对于一串布尔变量,其只有True和False两种取值,在满足若干个约束条件的前提下,对变量赋值举个栗子:A、B、C去吃早餐小A认为一顿好早餐应该菜品多(a)或味道好(b)小B认为一顿好早餐应......
  • SciTech-Theory-Phenomeon(Process and its Outcomes)->Experience(Sensation+Cogniti
    SciTech-Theory:Objective:Phenomeon:aobjectiveProcessanditsOutcomesSubjective:->Experience:Sensation+Cognition->Concept(Natural+Commonpartofexperiences)->Principle(research+invest)->Interpretations->Definition->Theo......