HDU 1257 最少拦截系统
2016-07-27 18:45
232 查看
题意:
给你n个依次飞来的导弹高度,问你需要多少套系统才能拦截所有的导弹。
思路:
正解应该是求有几个最长下降子序列,dp来做。我这里是直接模拟一遍,开数组存每套系统当前能射的高度。
#include<cstdio>
const int MAX=100005;
int n,a,b[MAX];
int main(){
while(~scanf("%d",&n)){
int cnt=0;
for(int i=0;i<n;i++){
scanf("%d",&a);
bool flag=false;
int Min=-1;
for(int j=0;j<cnt;j++){
if(b[j]>a){
if(Min==-1||b[Min]>b[j]) Min=j;
flag=true;
}
}
if(flag) b[Min]=a;
else b[cnt++]=a;
}
printf("%d\n",cnt);
}
return 0;
}
给你n个依次飞来的导弹高度,问你需要多少套系统才能拦截所有的导弹。
思路:
正解应该是求有几个最长下降子序列,dp来做。我这里是直接模拟一遍,开数组存每套系统当前能射的高度。
#include<cstdio>
const int MAX=100005;
int n,a,b[MAX];
int main(){
while(~scanf("%d",&n)){
int cnt=0;
for(int i=0;i<n;i++){
scanf("%d",&a);
bool flag=false;
int Min=-1;
for(int j=0;j<cnt;j++){
if(b[j]>a){
if(Min==-1||b[Min]>b[j]) Min=j;
flag=true;
}
}
if(flag) b[Min]=a;
else b[cnt++]=a;
}
printf("%d\n",cnt);
}
return 0;
}
相关文章推荐
- 面试总结【2】
- globals()
- HEU KMS Activator v11.1.0 Windows激活
- 第五篇.android的调试工具的相关
- android Camera 设置概述
- 多线程总结--线程池ThreadPoolExecutor
- 注册后通过邮件激活注册
- [实验室]2016.7.27
- ConcurrentHashMap原理分析
- HDU 5762 Teacher Bo
- 乐乐音乐播放器使用
- js文件和在html文件里放入js的区别
- javascript实用脚本
- vlc for android 编译环境搭建
- STC12C5A60S2 内部AD+1602显示
- javaweb学习总结(十八)——JSP属性范围
- Android Studio右键选项中没有svn
- webview chromium v51 webgl context video元素渲染到texture上的实现原理
- ora-1017
- java指针和Static