码迷,mamicode.com
首页 > 其他好文 > 详细

时间:2016-03-11?16:52:26?星期五

时间:2016-03-11 18:38:10      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

  • 时间:2016-03-11 16:52:26 星期五
  • 题目编号:POJ 1887 Testing the CATCHER
  • 题目大意:一个导弹拦截系统,能拦截一切高度不比上一个导弹低的导弹(第一个导弹一定能拦截),给出一些列的导弹,问最多能拦截多少导弹
  • 输入:
    • 若干组数据,每组数据以-1结尾,如果一组数据以-1开头,代表输入结束
  • 输出:
    • 最大拦截的导弹数目,每组数据后面至少1行空行
  • 分析:
    • 给定一个序列,每次能拦截的导弹小于或等于上一个导弹,
    • 题目转化为,给定一列数,求最大非上升序列
  • 蒙了,导弹的数目没有设置上限,但是弄了个1W最大,水过了....
  • 每组数据之间有一个空行!!!


#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
typedef long long LL;
#define CLR(x,y) memset((x),(y),sizeof((x)))
#define FOR(x,y,z) for(int (x)=(y);(x)<(z);++(x))
#define FORD(x,y,z) for(int (x)=(y);(x)>=(z);--(x))
#define FOR2(x,y,z) int (x);for((x)=(y);(x)<(z);++(x))
#define FORD2(x,y,z) int (x);for((x)=(y);(x)>=(z);--(x))




const int maxn = 10000;
int dp[maxn],a[maxn];
int main(){
        //freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        int cntcase = 0;
        while(~scanf("%d",a) && ~a[0]){
                int n = 1;
                CLR(dp,0);
                while(~scanf("%d",a + n) && ~a[n])         ++n;
                CLR(dp,0);
                FOR(i,0,n){
                        dp[i] = 1;
                        FOR(j,0,i){
                                if(a[i] <= a[j]){
                                        dp[i] = max(dp[i],dp[j] + 1);
                                }
                        }
                }
                int ans = 0;
                FOR(i,0,n){
                        ans = max(dp[i] , ans);
                }
                printf("Test #%d:\n  maximum possible interceptions: %d\n\n",++cntcase,ans);        
        }
        return 0;
}




时间:2016-03-11?16:52:26?星期五

标签:

原文地址:http://www.cnblogs.com/qhy285571052/p/5266570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!