贪心就行了。
每次只要把消防站建在目前未覆盖的最深节点的爷爷节点处,直到完全覆盖为止即可。
by Willem @ 2017-10-06 11:45:02
在此应该感谢一下楼主,作为开始连题解里的方程都看不懂的蒟蒻,看了楼主方程的解释,我居然奇迹般地看懂了方程!
然后看出了楼主的一些错误:
```cpp
首先f[u][2] = min { f[k][1] + sigma ( j != k ) min ( f[j][0..2] ) };(j,k均表示子节点)
还有f[u][3] = sigma { f[j][0..2] };
最后f[u][4] = sigma { f[j][0..3] };
```
(目测错误,可能改了还是错的,敬请谅解)
(可以参考最底下的题解,比较好理解)
by CaptainSlow @ 2017-10-08 20:38:06
另外状态还是可以简化的
by CaptainSlow @ 2017-10-08 20:39:18
还有
```cpp
f[i][0] = sigma ( min( f[j][0..4] ) )+1 (自己要选的,总数加1)
```
by CaptainSlow @ 2017-10-09 10:42:47