| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5349 人关注过本帖
标题:关于动态规划,导弹拦截问题。
只看楼主 加入收藏
skyn
Rank: 2
来 自:西南交通大学
等 级:论坛游民
帖 子:24
专家分:32
注 册:2011-10-17
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:14 
关于动态规划,导弹拦截问题。
希望能详细的解释一下解题思路,代码可以不用贴上,只要每一步的思路,具体要怎么做,谢谢了。,刚刚接触动态规划,希望慢慢理解。

比如这一道题。

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
Input
输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
Output
对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2

搜索更多相关主题的帖子: 系统 动态 导弹袭击 
2012-11-03 22:16
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
如果是求每套系统最多能拦多少导弹,就是一个基础的动态规划最长不上升序列,网上能搜到

如果要求多少套系统,答案就是最长上升序列的数目,如果要详细问为什么的话,要用离散数学中的偏序集来解释,你可以自己看
2012-11-03 22:21
jun331207100
Rank: 2
等 级:论坛游民
帖 子:12
专家分:37
注 册:2012-10-25
收藏
得分:0 
Sample Input
 8 389 207 155 300 299 170 158 65
 Sample Output
 2
 你的2是咋计算出来的?
2012-11-03 22:23
skyn
Rank: 2
来 自:西南交通大学
等 级:论坛游民
帖 子:24
专家分:32
注 册:2011-10-17
收藏
得分:0 
回复 2楼 czz5242199
最长上升序列 怎么实现?

﹎'ひS.т.й.R.S.に`"
2012-11-03 22:27
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 4楼 skyn
建议你详细了解此题,这题要理解的话完全超越了动态规划的难度,这题普通提问是:一个系统最多能打下多少导弹?

你先把上面这题弄懂吧
2012-11-03 22:31
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
收藏
得分:0 
看了看这题应该不是很难吧
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2

第一个系统:389 207 155 65
第二个系统:300 299 170 158
输出2
依次找比前一个数小的 找过的标记
看看能找几次 就需要几个系统呗
个人理解  这是哪个网站的哪道题 说清楚了看看能不能AC

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-05 09:29
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 6楼 zxd543
这组数据:
1 15 14 5 4 2 3 8 12 11 6 7 9 10 13

用你的算法答案是8,最好的方法是7
2012-11-05 10:05
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
致楼主:这个问题用动态规划没有问题,但它有更强的子结构,可以应用贪心算法。

提示:如果将条件改一下,如果每一发炮弹都不能低于前一发的高度,该怎么做?

致小曹:7楼的数据我的计算结果也是8组,航电1257题与楼主的题目描述完全一样,我的算法提交AC。

现在我是蹭朋友的无线终端上网,他马上要离开,我只能草草分析了一下就写代码提交测试,没有对算法的完备性进行严格的证明。

所以也不能排除原题就有漏洞的可能。

我想看看为7的具体方案是什么样的。

重剑无锋,大巧不工
2012-11-05 11:45
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
等待中,不过朋友要走了,又得恢复到手机上网状态了

重剑无锋,大巧不工
2012-11-05 11:51
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
回复 8楼 beyondyf
哦,这个数据确实是8,大意了

这题贪心也可以,但方法应该不是如6L所说的,不过我一下也找不出反例来

这题正确的贪心应该是:

假设现在用了k个系统来打前n个导弹,并且记录下每个系统打过的最低的导弹,然后对于第n+1个导弹,找出“大于等于这枚导弹高度中最低的系统”打这枚导弹同时更新系统高度,如果不存在则增加一个新的系统
2012-11-05 14:07
快速回复:关于动态规划,导弹拦截问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023163 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved