p2279专题

洛谷 P2279 [HNOI2003] 消防局的设立

思路: 和“战略游戏”很像,但是状态明显变多了。 dp[i][0]代表i节点向上覆盖至i的父亲的父亲。 dp[i][1]代表i结点向上覆盖至i的父亲。 dp[i][2]代表i结点覆盖自身 dp[i][3]代表i结点向下覆盖自己的儿子。 dp[i][4]代表i结点向下覆盖自己的孙子。 状态方程大家可以看洛谷中的题解,这里不过多浪费时间了,给出一个参考代码,逻辑会稍微清晰一点。 代码有

(Luogu) P2279 [HNOI2003]消防局的设立

传送门 解题思路:此题可以树形dp也可以贪心过,看了第一篇题解,非常nice!贪心的策略也很好想,我们从深度最大的开始,他没有孩子孙子,我们自然选择去建立他的祖父,这样可以覆盖到更多的点,我们如何去判断点是否已经被覆盖到了呢,可以开一个o数组 o[i]表示 i到最近的消防站的距离 初始化为 0x3f3f3f3f 。代码如下: #include<cstdio>#include<iostream