其他分享
首页 > 其他分享> > 图论-突突突突突

图论-突突突突突

作者:互联网

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