[ CodeVS冲杯之路 ] P1576

Posted Yo!Hadilo!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ CodeVS冲杯之路 ] P1576相关的知识,希望对你有一定的参考价值。

  不充钱,你怎么AC?

  题目:http://codevs.cn/problem/1576/

 

  这和上一道题十分的类似,所以直接秒杀 ( 上一题:http://www.cnblogs.com/hadilo/p/5865216.html )

  设 f[i] 为在第 i 个数字时 最长上升序列的个数

  

  目标状态为 max(f[i])

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 #define N 5001
 8 using namespace std;
 9 
10 int a[N],f[N],n,ans;
11 int main()
12 {
13     int i=0,j;
14     scanf("%d",&n);
15     for (i=1;i<=n;i++) scanf("%d",&a[i]);
16     for (i=1;i<=n;i++)
17     {
18         for (j=0;j<i;j++)
19         {
20             if (a[j]<a[i])
21             {
22                 if (f[i]<f[j]+1)
23                 {
24                     f[i]=f[j]+1;
25                     ans=max(ans,f[i]);
26                 }
27             }
28         }
29     }
30     printf("%d\\n",ans);
31     return 0;
32 }

 

以上是关于[ CodeVS冲杯之路 ] P1576的主要内容,如果未能解决你的问题,请参考以下文章

[ CodeVS冲杯之路 ] P3143

[ CodeVS冲杯之路 ] P3955

[ CodeVS冲杯之路 ] P1368

[ CodeVS冲杯之路 ] P1197

[ CodeVS冲杯之路 ] P2492

[ CodeVS冲杯之路 ] P1294