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

[HDOJ1261]最少拦截系统

时间:2015-09-02 23:14:57      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257

 

dp数组记录某套拦截系统当前可以拦截的高度。

贪心可过,每读入一个导弹高度,和之前能打到的最低的比较,如果导弹比之前的高,那就要增加一套拦截系统,并且将此导弹的高度记录下来。如果比之前的低,那么让最近的比它高的那套拦截系统拦截它,并且更改那一套的dp值。

 

 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <iostream>
 6 #include <cmath>
 7 #include <queue>
 8 #include <map>
 9 #include <set>
10 #include <stack>
11 #include <list>
12 #include <vector>
13 
14 using namespace std;
15 
16 const int maxn = 30010;
17 int n;
18 int tmp;
19 int dp[maxn];
20 
21 int main() {
22     // freopen("in", "r", stdin);
23     while(~scanf("%d", &n)) {
24         int cnt = 1;
25         int flag = 0;
26         while(n--) {
27             scanf("%d", &tmp);
28             if(!flag) {
29                 dp[0] = tmp;
30                 flag = 1;
31             }
32             int i;
33             for(i = 0; i < cnt; i++) {
34                 if(tmp <= dp[i]) {
35                     dp[i] = tmp;
36                     break;
37                 }
38             }
39             if(i == cnt) {
40                 dp[cnt++] = tmp;
41             }
42         }
43         printf("%d\n", cnt);
44     }
45 }

 

[HDOJ1261]最少拦截系统

标签:

原文地址:http://www.cnblogs.com/vincentX/p/4779552.html

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