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

hud5773_lis最长上升子序列

时间:2016-08-01 17:27:22      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

http://acm.hdu.edu.cn/showproblem.php?pid=5773

题意:给你一个数组,0可以改成任意数,不要求每个0都改成一样的,问改变后的最长上升子序列的长度,不要求连续

 1 #include <algorithm>
 2 #include <iostream>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <cstdio>
 6 #include <vector>
 7 #include <ctime>
 8 #include <queue>
 9 #include <list>
10 #include <set>
11 #include <map>
12 using namespace std;
13 #define INF 0x3f3f3f3f
14 typedef long long LL;
15 
16 int x[100010];
17 int main()
18 {
19     int t, n;
20     scanf("%d", &t);
21     for(int i = 1; i <= t; i++)
22     {
23         scanf("%d", &n);
24         int te, num = 0, k = 0;
25         for(int j = 1; j <= n; j++)
26         {
27             scanf("%d", &te);
28             if(te == 0)
29             {
30                 num++;                
31             }
32             else
33             {
34                 te -= num;
35                 if(k == 0)
36                     x[k++] = te;
37                 else{
38                     if(te > x[k - 1])
39                         x[k++] = te;
40                     else{
41                         int l1 = lower_bound(x, x + k, te) - x;
42                         x[l1] = te;
43                     }
44                 }
45             }
46         }
47         printf("Case #%d: %d\n", i, k + num);
48     }
49     return 0;
50 }

 

hud5773_lis最长上升子序列

标签:

原文地址:http://www.cnblogs.com/luomi/p/5726400.html

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