导弹拦截(贪心问+动态规划问)
来源:互联网 发布:简单的c语言程序题目 编辑:程序博客网 时间:2024/06/13 06:15
题目描述
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
输入
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000)
输出
输出有2行。
第1行是最多能拦截的导弹数,第2行是要拦截所有导弹最少要配备的系统数。
样例输入
389 207 155 300 299 170 158 65
样例输出
6
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
输入
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000)
输出
输出有2行。
第1行是最多能拦截的导弹数,第2行是要拦截所有导弹最少要配备的系统数。
样例输入
389 207 155 300 299 170 158 65
样例输出
6
2
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int main(){ int i=0,a[1005],s=1,b[1005]={0},m,j=0,dp[1005][3]; while(scanf("%d",&a[i])!=EOF) { dp[i+1][1]=a[i]; dp[i+1][2]=1; dp[i+1][3]=0; if(i==0){b[0]=a[i];} else { if(a[i]>a[i-1]) { int k; for(k=0;k<=j;k++) { if(a[i]<=b[k]){b[k]=a[i];break;} } if(k==j+1) { s++; b[++j]=a[i]; } } else { int k,cha[1005]={30010},mins=30010,f=-1; for(k=0;k<=j;k++) { cha[k]=b[k]-a[i]; if(cha[k]>=0&&cha[k]<=mins){mins=cha[k];f=k;} } b[f]=a[i]; } }//以上,贪心问 i++; } int n=i; for(i=n-1;i>=1;i--) { int l=0,k=0; for(j=i+1;j<=n;j++) if(dp[j][1]<=dp[i][1]&&dp[j][2]>l) { l=dp[j][2]; k=j; } dp[i][2]=l+1; dp[i][3]=k; } int maxs=0; for(i=1;i<=n;i++) maxs=max(maxs,dp[i][2]);//以上,动态规划问题 printf("%d\n%d\n",maxs,s);//maxs DP ;s 贪心。 return 0;}
阅读全文
0 0
- 导弹拦截(贪心问+动态规划问)
- 拦截导弹(贪心+动态)
- 导弹拦截(动态规划)
- 动态规划-导弹拦截
- 导弹拦截 动态规划
- 【动态规划】拦截导弹
- 动态规划 拦截导弹
- 动态规划 - 拦截导弹
- 导弹拦截-动态规划
- 导弹拦截---动态规划
- 拦截导弹(动态规划)
- 导弹拦截 动态规划
- nyoj--814--又见拦截导弹(动态规划+贪心)
- |Tyvj|NOIP1999|动态规划|贪心|P1878 拦截导弹
- nyoj-79-拦截导弹(动态规划)
- nyoj--79--导弹拦截(动态规划)
- 算法训练 拦截导弹(动态规划)
- NYOJ 79 拦截导弹 (动态规划)
- scrapy(二)
- C++ VS项目属性的一些配置项的总结
- CodeVS3327 选择数字 解题报告【单调队列优化DP】
- flume介绍与原理
- Digdata Development Java__Study_10(buffer缓冲区,字符流)
- 导弹拦截(贪心问+动态规划问)
- HYSBZ 3224 Tyvj 1728 普通平衡树 treap
- 奇怪的国家
- 十二、网易2017<独立的小易>
- linux中交换内存空间(swap)的构建
- [CodeForces-758D] 区间dp
- 字节序,地址转换
- js十大排序(简单粗暴法)
- 【HPU-2016校赛-J】Judge