Poj 3417 闇の連鎖

题目描述:一个怪物叫做“Dark”,是人们内心中阴暗的化身。有n个节点,m条边。它的身上有两种边:主边和附加边。附加边都会分布在它的体表,而主边则是在它的体内,并且主边一定只有n-1条且恰好构成一棵树。作为一个勇士,你需要拿着剑来杀死Dark。初始,Dark为了防止袭击,它的附加边都处在无敌模式,而此时它无暇顾及主边,所以你可以选择切断它的一条主边。切断主边后,Dark会为了保护自己的核心,将所有主边进入无敌状态而附加边变为普通状态,你可以再切断Dark的任意一条附加边切断。若切断这两个边之后,Dark身上的边被分成了两个连通块,则Dark被杀死了。问:你有多少种方案杀死这个Dark?

思路:将这m-n+1个附加边依次插入进整个图中,假设某条附加边连接着(u,v),则我们说它将主边构成的树上u到v的路径“覆盖”了一次。

 

红色边表示主边,上面的数字是被“覆盖”的次数,黑色是附加边

不难发现,当你准备选择一个主边切断时,必然需要把覆盖它的所有附加边都切断才能使得Dark分裂。

所以,可以得到如下结论:

对于任意被覆盖次数是0的主边,切断后一定会使得这个主边两边的点处于两个不同的连通块,但因为你必须要再切断一个附加边,所以可以任选一个附加边切断,答案就是n-m+1

切断覆盖值为1的主边,那必须切断覆盖它的那个附加边,答案是1

切断覆盖值为2的主边,不可能1步之内切断所有附加边,答案是0。

 

思路:将这m-n+1个附加边依次插入进整个图中,假设某条附加边连接着(u,v),则我们说它将主边构成的树上u到v的路径“覆盖”了一次。

posted @ 2020-11-18 19:15  minecraft_herobrine  阅读(129)  评论(0)    收藏  举报