可行性判断
如果将网络拆分成若干个服务器数量均为偶数的子网,则所有子网的服务器数之和也为偶数。因此,若总服务器数 n 为奇数,无论如何拆分都不可能满足条件,此时方案数为 0。
当 n 为偶数时,才可能存在合法方案。
子树大小与边的性质
将整个网络看成一棵无根树,任选服务器 1 作为根,进行一次遍历,得到每个节点与父节点之间的父子关系,以及以每个节点为根的子树大小 sz[u]。
对于连接父节点 p 和子节点 v 的光纤(边),如果切断该光纤,则 v 及其子树将形成一个独立的子网,该子网的服务器数量正好等于 sz[v]。
某个数据中心内部有 n 台服务器,服务器之间通过 n−1 条光纤两两相连。整个网络不存在任何环路,并且保证任意两台服务器之间都有且仅有一条通信路径。
现在管理员需要执行一次网络隔离演练:他必须恰好切断 k 条光纤,使得网络被拆分成恰好 k+1 个彼此独立的子网。为了保证每个子网都能独立执行双机热备策略,要求拆分后每个子网内的服务器台数均为偶数。
管理员想知道,总共有多少种不同的光纤切断方案能够满足上述要求。由于答案可能很大,请输出其对 109+7 取模后的结果。
数据范围与约束
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.