[c]noip 1999 导弹拦截
2015-08-04 23:09
295 查看
http://acm.neu.edu.cn/hustoj/problem.php?id=1049
题目标题:导弹拦截
题目内容:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
这个题我在sdnuoj上死活过不了,但是做noip的时候就能过,不知道为啥、、题目第一问就是求最长不递减序列,第二问是求最长递增序列
题目标题:导弹拦截
题目内容:某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
这个题我在sdnuoj上死活过不了,但是做noip的时候就能过,不知道为啥、、题目第一问就是求最长不递减序列,第二问是求最长递增序列
#include<iostream> #include<stdio.h> #define debug 0 using namespace std; int b[22]={1}; int c[22]={1}; int a[22]={0}; int lanjie(int n){ for(int i=1;i<n;i++){ int max=0; for(int j=0;j<i;j++){ if(a[i]<=a[j] && b[j]>max) max=b[j]; } b[i]=max+1; } int re=1; for(int i=0;i<n;i++){ if(b[i]>re) re=b[i]; } return re; } int ss(int n){ for(int i=1;i<n;i++){ int max=0; for(int j=0;j<i;j++){ if(a[i]>a[j] && c[j]>max) max=c[j]; } c[i]=max+1; } int re=0; for(int i=0;i<n;i++){ if(c[i]>re) re=c[i]; } return re; } int main() { int i=0; while(cin>>a[i]) i++; int x1=lanjie(i); int x2=ss(i); cout<<x1<<'\n'<<x2; if(debug){ for(int ii=0;ii<i;ii++) cout<<b[ii]<<' '; cout<<endl; for(int ii=0;ii<i;ii++) cout<<c[ii]<<' '; } }
相关文章推荐
- usaco 1.2 Palindromic Squares题解
- C#网络编程《三》
- 网络tcp/ip资料
- scala中同步块
- bzoj 3479: [Usaco2014 Mar]Watering the Fields
- POJ - 1463Strategic game入门树形DP
- poj 2947 高斯消元求解方程组取模
- Android 网络请求框架总结(二)
- IOS 如何实现滑动返回上一页
- 大众创业时代已来临 你准备好了吗
- HDU 5347 MZL's chemistry(高三化学选修题)
- 84. Largest Rectangle in Histogram
- 解决Mac OS下安装MyEclipse报错:Your system does not have sufficient memory to support MyEclipse
- Python开发--pprint
- [BZOJ1806][Ioi2007]Miners 矿工配餐
- 树状数组 详解
- SGU_495_KidsAndPrizes
- 2015080405 - 书评们给点有价值的意见呗
- 【SPFA】POJ1860-Currency Exchange
- Nginx 笔记与总结(7)Location:正则匹配