p4516-solution
P4516 Solution
树形dp。设 \(dp_{u,k,0/1,0/1}\)表示以 \(u\) 为根的子树内安装了 \(k\) 个设备,点 \(u\) 是否安装了设备,点 \(u\) 是否被监听时子树内除 \(u\) 都被监听的方案数。
注意到状态涉及到了设备的数量,转移的时候需要枚举 \(i\) 表示 \(u\) 的 \(k\),\(j\) 表示 \(v\) 的 \(k\) 并转移到 \(k\) 为 \(i+j\) 的状态。
分四类转移:
- 当 \(u\) 没有监听设备且 \(u\) 没有被监听时。
显然 \(dp_{u,i+j,0,0}\gets\sum dp_{u,i,0,0}\times dp_{v,j,0,1}\)。
- 当 \(u\) 没有监听设备但 \(u\) 被监听时。
这个时候原先 \(u\) 上面一定没有设备,\(v\) 一定要被(\(v\) 的儿子)监听;
如果原先 \(u\) 已经被监听了,那么 \(v\) 上面可有设备也可没有设备。
如果原先 \(u\) 没有被监听,那么 \(v\) 上面必须要有设备。
于是 \(dp_{u,i+j,0,1}\gets\sum dp_{u,i,0,1}\times(dp_{v,j,0,1}+dp_{v,j,1,1})+dp_{u,i,0,0}\times dp_{v,j,1,1}\)。
- 当 \(u\) 有监听设备但 \(u\) 没有被监听时。
这时 \(v\) 上一定没有监听设备,但 \(v\) 可以被监听也可以不被监听。
\(dp_{u,i+j,1,0}\gets\sum dp_{u,i,1,0}\times(dp_{v,j,0,0}+dp_{v,j,0,1})\)
- 当 \(u\) 有监听设备且 \(u\) 被监听时。
这个时候原先 \(u\) 上面一定有设备;
如果原先 \(u\) 已经被监听了,那么 \(v\) 爱怎么取怎么取。
如果原先 \(u\) 没有被监听,那么 \(v\) 上面必须要有设备。
\(dp_{u,i+j,1,1}\gets\sum dp_{u,i,1,1}\times(dp_{v,j,0,0}+dp_{v,j,0,1}+dp_{v,j,1,0}+dp_{v,j,1,1})+dp_{u,i,1,0}\times(dp_{v,j,1,0}+dp_{v,j,1,1})\)
初始 \(dp_{u,0,0,0}=dp_{u,1,1,0}=1\)。

浙公网安备 33010602011771号