hnoi2003专题

洛谷 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

差之毫厘, 异之千里 --- 从 UVa1292 与 [HNOI2003]消防局的设立 的异同谈审题的重要性...

今天做dp的时候, 看见一道似曾相识的题 ---  [HNOI2003]消防局的设立 我的第一反应就是 UVa1292 Strategic game 这道题. 我以为, 这两题的差距只在"控制的距离上". 于是乎, 苦想dp无果(虽然这题可以dp). 看题解发现原来是简单的贪心. 解决了这道题以后, 我就回头研究UVa1292了. 在网上找了一圈, 发现没有用贪心做的. 我岂不是发现了一种新的做

bzoj1216 [HNOI2003]操作系统

传送门 Description 写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束。除非在这个过程中,有一个比它优先级高的进程要运行。在这种情况下,这个新的(优先级更高的)进程会占用CPU,而老的只有等待。

洛谷 P2278 [HNOI2003]操作系统

题目描述 写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。 如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束。除非在这个过程中,有一个比它优先级高的进程要运行。在这种情况下,这个新的(优先级更高的)进程会占用CPU,而老的只有等待。 如果一个进程到达

luoguP2279 [HNOI2003]消防局的设立

题目描述 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过道路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发火灾,人类决定在火星上修建若干个消防局。消防局只能修建在基地里,每个消防局有能力

[HNOI2003]激光炸弹---二维前缀和

题目描述 一种新型的激光炸弹,可以摧毁一个边长为 m 的正方形内的所有目标。现在地图上有 n 个目标,用整数 xi​ , yi​ 表示目标在地图上的位置,每个目标都有一个价值 vi​ .激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为 m 的边必须与 x 轴, y 轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。 现在你的任务是计算一颗炸弹最多能炸掉地图上总价值