CUGB 1050 题解动态规划简单题,这是我学会动态规划后做的第三道题比起前两道明显要顺手的多!秩序套用一下代码末班就行了。
1 #include<stdio.h>
2
3 int main()
4 {
5 int i, k, h[25], max;
6 int j, temp, dp[25];
7
8 while(scanf("%d", &k) != EOF)
9 {
10 for(i=1; i<=k; i++)
11 {
12 scanf("%d", &h[i]);
13 }
14
15 for (i=k; i>0; i--)
16 {
17 temp = 0;
18 for (j=k; j>i; j--)
19 {
20 if ((h[i] >= h[j]) && (temp < dp[j]+1))
21 temp = dp[j];
22 }
23 dp[i] = temp + 1;
24 }
25
26 max = 1;
27 for (i=1; i<=k; i++)
28 {
29 if(dp[i] > max)
30 max = dp[i];
31 }
32 printf("%d\n",max);
33 }
34 return 0;
35 }
36