专栏文章

题解:[AGC069D] Tree and Intervals

AT_agc069_d题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miozna27
此快照首次捕获于
2025/12/03 03:45
3 个月前
此快照最后确认于
2025/12/03 03:45
3 个月前
查看原文
下文中使用 SS 代替题面中的 xx 序列。
Rainbow_qwq 的题解里给了一个惊人的转化:将 [1,i][1,i] 中的点染黑,Si=S_i= 同色的黑连通块数 ++ 同色的白连通块数 1-1
考虑不断染黑的过程,设当前黑色连通块数为 xx,白色连通块数为 yy,增加 ii 号点后黑块数变为 xx',白块数变为 yy'
显然 xx+1,yy+1x'\le x+1,y\le y'+1
另外可以发现不可能同时有 x=x+1x'=x+1y=y+1y=y'+1
考虑 ii 号点周围的邻居中有 pp 个黑点 qq 个白点。染黑 ii 号点后黑块数增加了 1p1-p,白块数增加了 q1q-1
显然当 n>1n>1 时不可能有 p=q=0p=q=0,这也说明了为什么不能同时加一减一。
进一步地,考虑 p+q=degup+q=\deg u,由于开始时 x=0,y=1x=0,y=1 结束时 x=1,y=0x=1,y=0,因此 p+q=degu=n1\sum p+q=\sum\deg u=n-1 成立,且上面保证了 degu0\deg u\ne 0,可以想象一定可以连成一棵树,猜测这是充要条件。
现在考虑如何判定是否存在上述 xxyy 序列。
假设 Si1=aS_{i-1}=aSi=bS_i=b。当 aba\ne b 时,对于 xx' 要求 1xmin(n,x+1)1\le x'\le \min(n,x+1);对于 yy' 要求 max(1,y1)yn\max(1,y-1)\le y'\le n,也就是 max(1,ax)bxn\max(1,a-x)\le b-x'\le n,即 xba+xx'\le b-a+x。当 a=ba=b 时,由于不能同时顶到界,要求 xxx'\le xyyy'\ge y
解方程得到 xx' 的取值范围是一段 [1,j][1,j] 的区间,因此记录最大值 jj 即可。
fi,j,af_{i,j,a} 表示染色 [1,i][1,i],黑块数目最多是 jj,总连通块数为 aa,枚举 bb 转移复杂度 O(n4)O(n^4)代码。使用一些二维差分可以到 O(n3)O(n^3)代码。

评论

0 条评论,欢迎与作者交流。

正在加载评论...