Tokens on the Tree做题记录

题目链接 https://qoj.ac/contest/504/problem/1288

这是模拟赛的一道题
树上等价类计数,让我想起了刚做过的Circus P

但是我甚至不会算一个F(w,b),考虑怎么算这个
钦定w>=b
发现我们知道这个数字什么时候是1,当存在一个点断开后的连通块有两个>=w,有三个>=b,那我们甚至可以互换两种颜色的相对位置,答案当然是1
如果只要答案唯一的部分,显然对1个W,答案为1的B是一段前缀,随便怎么处理一下就行
两个颜色不能互换的话,我最开始以为答案就是2,但这是错的,看看这组样例
image
image
在纸上画一下,发现答案为3是因为重心一定被W占上了,B不能在剩下的连通块里遨游
然后发现,会存在点被占上的W是一段后缀,感性理解一下,那些点是一个包含重心的连通块
此时的答案就是删掉这个连通块,剩的块中>=B的块的个数
然后别的情况答案就是2了

随便拿个数据结构做一下就好

posted @ 2026-08-22 14:20  fgzx  阅读(2)  评论(0)    收藏  举报