图论-突突突突突
作者:互联网
owo
[BZOJ 3681] Arietta
持久化,每次新建节点,避免影响之前的树。
[AGC 006F] Blackout
统计每个弱连通分量,三个颜色染色之后把点重新编号,定义一个集合 \(S\) , 如果有 \(v\) ,表示有长度为 \(v\) 的有向边。初始时,集合存在 \(1\) 。如果有 \(x,y\) ,就有 \(f(x,y)=-x-y\) 。
以下构造只使用 \(1,-2\) 。
\(x \rightarrow f(x,1)=-x-1 \rightarrow f(-x-1,-2)=x+3\) ,所以 \(1+3k\) \((k \ge 0)\) 存在。
\(f(1,1+3k)=-2-3k\) ,所以 \(-2-3k\) \((k \ge 0)\) 存在。整合起来, \(S=\{1+3t| t \in N\}\) 。
\(0\) 非常好,因为有 \(0\) 说明每个数都能用来构造它的相反数了,总边数就是 \(cnt^2\) 。
染色失败,说明存在下面两种情况中的一种:
第一种: \(2+3t \in S\)
\(t \ge 0\) , \(f(2+3t,-2)=-3t \rightarrow f(-3t, 1)=3t-1\rightarrow f(3t-1,-2)=-3t+3 \rightarrow \cdots\) ,可以构造 \(0\) 。
\(t <0\) , \(f(2+3t,1)=-3t-3 \rightarrow \cdots\) 可以构造 \(0\) 。
第二种: \(3t \in S\)
\(t \ge 0\) , \(f(3t,-2)=-3t+2 \rightarrow f(-3t+2,1)=3t-3 \rightarrow \cdots\) ,可以构造 \(0\) 。
\(t < 0\) , \(f(3t,1)=-3t-1 \rightarrow f(-3t-1,-2)=3t+3 \rightarrow \cdots\) ,可以构造 \(0\) 。
染色成功,总边数 \(cnt_0cnt_1+cnt_1cnt_2+cnt_2cnt_0\) 。
不过一分图和二分图的时候,是不存在 \(v=-2\) 的,此时什么也构造不出来,需要特判。
标签:突突,图论,突突突,cnt,构造,3t,3k,ge,rightarrow 来源: https://www.cnblogs.com/ghcred/p/10443496.html