首页 > 其他分享 >cf1555f-solution

cf1555f-solution

时间:2024-02-28 13:48:06浏览次数:20  
标签:mathbf cdots solution II 异或 cf1555f 非树边 森林

CF1555F Solution

link

分析一张图中的环,我们可以考虑把图表示为一棵生成树加上许多非树边。

对于这题,我们考虑动态维护一片森林,在每次准备加一条边 \((u,v)\) 时:

  • 如果这条边加进去后与森林不形成环,那么它与图肯定也不形成环,那么直接加进森林中。

  • 如果这条边是森林的一条非树边,那么考虑什么时候我们可以加进森林中。

首先,根据题意,\(w_{(u,v)}\) 异或树上链 \(u,v\) 的异或和得是 \(1\)。

然而加进 \((u,v)\) 不仅会与树形成环,它可能会与其他非树边形成环。

考虑下图。

graph

这里 \((u,v),(x,y)\) 和树边形成了一个环。

你发现这里一共有三个环:

  • \(u\to root\to v\cdots\mathbf I\)

  • \(x\to root\to y\cdots\mathbf{II}\)

  • \(x\to u\to v \to y\cdots\mathbf{III}\)

现在我们知道环 \(\mathbf I\) 和环 \(\mathbf{II}\) 的异或和都是 \(1\)。

但是你发现环 \(\mathbf{III}\) 的异或和是 \(\mathbf I\) 和 \(\mathbf{II}\) 的异或,等于 \(0\)。

这与题设矛盾。于是我们就得到了一个重要结论:图中不能存在相交的两个环

那么就好办了,每次加非树边时检查一下树上 \(u,v\) 链上是否有标记,没有的话给链打上标记,否则就无法加边。

至于如何动态维护森林,用 LCT 即可,支持 link,链加,链推平和链求和。

时间复杂度线性对数。

标签:mathbf,cdots,solution,II,异或,cf1555f,非树边,森林
From: https://www.cnblogs.com/iorit/p/18040108

相关文章

  • cf1553f-solution
    CF1553FSolutionlink首先显然地\(\displaystylep_i=p_{i-1}+\sum_{j=1}^{i-1}a_j\bmoda_i+\sum_{j=1}^{i-1}a_i\bmoda_j\)。那么两部分分开来算。\(\displaystyle\sum_{j=1}^{i-1}a_j\bmoda_i\):我们知道\(x\bmody=x-y\lfloor\fracxy\rfloor\),那么我们先把答案加上......
  • cf1548c-solution
    CF1548CSolutionlink题意说人话就是每次给\(x\)求\(\displaystyle\sum_{i=1}^n\binom{3i}x\)。由于多组询问,考虑能不能生成函数。设\[\begin{aligned}f_k&=\sum_{i=1}^n\binom{3i}k\\F(x)&=\sum_{i=0}^\inftyf_{i}x^i\\&=\sum_{i=0}^\infty\sum_{j=1}^n\bin......
  • cf1491h-solution
    CF1491HSolutionlink考虑分块。按照点的编号分块,维护\(b_i\)表示\(i\)往上跳遇到的第一个与\(i\)异块的点。对于散块修改,直接暴力重构整块的\(b\)。重构方式是,如果\(a_i\)与\(i\)异块,则\(b_i\getsa_i\);否则\(b_i\getsb_{a_i}\)。对于整块,打标记维护整体减了多......
  • cf1491e-solution
    CF1491ESolutionlink首先,把一棵大小为\(f_i\)的树切成两棵树只能是切成\(f_{i-1}\)和\(f_{i-2}\)的,而且最多只有两种切的方案。证明考虑分类讨论是否有大小为\(f_{i-1}\)的子树(以\(1\)为根)即可,感性理解就好。接下来你可以选择每次暴力通过两种割边方案递归检验,但是......
  • cf1487g-solution
    CF1487GSolutionlink想一想没有字符的限制怎么做。首先,没有长度大于一的奇回文串显然等价于没有长度为\(3\)的回文串。也就等价于\(\foralli\in[1,n-2],s_i\not=s_{i+2}\)。那么在没有限制的情况下,我们确定好了前两位字符,后面的\(n-2\)位各有\(25\)种字符可选。方......
  • cf1446d2-solution
    CF1446D2Solutionlink首先,最终答案区间中的众数一定包括整个序列的众数\(K\)。证明:设这个区间中众数出现次数为\(cnt\)。如果上述不成立,由于\(K\)在这个区间中出现次数小于\(cnt\),我们将区间向两边延申,\(K\)的出现次数应当不断增加直到等于区间的众数出现次数。这样子......
  • cf1396d-solution
    CF1396DSolutionlink题面:给你一个\(L\timesL\)的矩形,有\(n\)个点放在不同的格子内,每个点有颜色,共\(k\)种颜色,求有多少个矩形满足其内部含有所有颜色的点,对\(10^9+7\)取模。\(k\len\le2000,L\le10^9\)。首先离散化。看到数据范围说明可以枚举矩形的某个端点或者......
  • cf1340d-solution
    CF1340DSolutionlink手❤玩❤一❤下,答案大概就是所有点的度数最大值。下面证明。首先这个肯定是答案的下界,因为度数最大的点至少被经过了它的度数次。现在考虑构造。对于一棵以\(u\)为根的子树,如果我们能证明第一次到\(u\)的时间是\(t\),最后一次到\(u\)的时间是\(t-......
  • cf1332f-solution
    CF1332FSolutionlink设\(dp_{u,0/1,0/1}\)表示在\(u\)的子树中,节点\(u\)与它父亲的边是否在导出子图中,点\(u\)是否在独立集中,的方案数。\[dp_{u,0,0}\gets\prod_v(dp_{v,0,0}+dp_{v,1,0}+dp_{v,0,1}+dp_{v,1,1})\]\[dp_{u,1,0}\gets\prod_v(dp_{v,0,0}+dp_{v,1,0}+......
  • cf1303g-solution
    CF1303GSolutionlink\(k\)个数\(a_i\)的前缀和的和就是\(\displaystyle\sum_{i=1}^k(k-i+1)a_i\)。这个题可以考虑换一下\(u,v\),那么式子就变成了\(\displaystyle\sum_{i=1}^kia_i\)。注意到要统计树上路径的最值,考虑点分治。考虑上面的式子从\(j\)处断开,那么式子变......