O興~
 
« 上一篇: Mencoder 压电影小小心得 下一篇: PKU 2285, The Floor Bricks,有点复杂, DP + 搜索 »
我很懒的 @ 2008-04-14 14:26

    这道题目的大意是这样的:在一个游戏中,有 N 个敌人等着我去杀掉(N ≤ 1000);杀掉每个敌人所需的时间分别是 Ti;这 N 个敌人之间有父子关系,形成棵树,树的根节点是最终 Boss,一但杀掉他,游戏立即结束;在每一步中,我都可以任选一个敌人杀掉;一但有一个节点的两个儿子被杀掉,我的下一步就不能选择,必须立即杀掉该节点。问,游戏的时间最长可以持续多久。

    看似简单,但是开始做的时候,才发现有一些复杂的情况。比如,当一个节点被杀后,如果它的子树中还存在没有被杀掉的,可以全杀掉,以拖延整体的时间;对于任何一个节点,把它的儿子只杀掉一个,这不会迫使我必须杀掉它本身,而对于它的其它没有被杀的儿子,我还可以分别只杀掉它们的一个儿子,这也可以拖延时间;等等……

    分析到最后,应该有这三个状态:
  • diei:如果只杀以节点 i 为根的子树中的敌人,则 i 被杀的时间的最大值。
  • noDiei:如果只杀以节点 i 为根的子树中的敌人,则最长可以拖延多久,使 i 还活着,并且我下一步还可以自由选择。可见,在这个时间之后,如果我再杀掉该子树中的任何一个敌人,就会引起连锁反映,迫使我无法选择,最终必须在时间 diei 杀掉 i。
  • cleari:如果只杀以节点 i 为根的子树中的敌人,则当我在时间 diei 杀掉 i 之后,需要再花多少时间,把该子树中剩下的节点全杀光(其实就是所有剩下的节点的 T 值的总和)。
    最终要求的案答就是 dieBoss

    对于一个节点 v,求 diev、 noDiev 和 clearv 的过程分为以下三种情况:

    1. 如果 v 是叶节点,则 diev = Tv, noDiev = clearv = 0。

    2. 如果 v 只有一个子节点 x,则 noDiev = diex + clearx, diev = noDiev + Tv, clearv = 0。

    3. 如果 v 有多个子节点,则:
  • 先把每个子节点 i 的时间都拖延到 noDiei 。此时,v 子节点都还活着,并且下一步我可以自由选择。记此时的时间为 sumNoDie。
  • 选取一个子节点 i,花 killi = (diei - noDiei) + cleari 的时间把 i 这棵子树全部清理掉。此时的时间是 sumNoDie + killi, v 的节点只死了一个,且下一步我还可以自由选择。在 v 的所有子节点中, sumNoDie + killi 的最大值就是 noDiev
  • 清理掉一个子节点 i 之后,再选一个子节点 j,用 killj = diej - noDiej 的时间杀掉 j。此时, v 已经有两个儿子被杀,必须立即花 Tv 的时间杀掉 v,那么 v 死时间就是 sumNoDie + killi + killj + Tv。在所有选取 i、 j 的方案中, sumNoDie + killi + killj + Tv 的最大值就是 diev
  • 最后求 clearv。在确定了以上 i、 j 的最佳选取方案,并在时间 diev 杀掉 v 之后,还需要花 clearj 的时间清理子树 j,然后对于 v 的其它剩下的子节点 x,再分别花 (diex - noDiex) + clearx 的时间把它们的子树都杀光。这些时间的总和就是 clearv



最新评论


iloahz

2008-04-20 21:00 匿名 61.139.*.*

你好,可以给我发一个A*求最短路的程序吗?
我的EMAIL:iloahz@gmail.com

已发。

评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定

日历
网志分类
· 所有网志
· program
· 未分类
站内搜索
友情链接
· 歪酷博客
· 管理我的Blog
· jamie
· feemi
· lyrist
· tata
· allen
· richard

订阅 RSS

0081479

歪酷博客