题目大意:
最长单调递增子序列和。
思路:
经典的dps.
感想:
豆豆说大白书上有,,他真厉害。。
- #include <stdio.h>
- #include<iostream>
- #include<cstdio>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- struct dddd
- {
- long long int num;
- long long int len;
- };
- int main()
- {
- int n,i,j;
- //freopen("r.txt","r",stdin);
- int a[10005];
- int dp[10005];
- int temp;
- while(~scanf("%d",&n))
- {
- if(n==0) break;
- memset(dp,0,sizeof(dp));
- for(i=1;i<=n;i++)
- {
- scanf("%d",&a[i]);
- }
- for(i=1;i<=n;i++)
- {
- temp=-32768;
- for(j=0;j<i;j++)
- {
- if(a[i]>a[j])
- {
- temp=max(temp,dp[j]);
- }
- }
- dp[i]=a[i]+temp;
- }
- temp=-32768;
- for(i=0;i<=n;i++)
- {
- if(temp<dp[i])
- temp=dp[i];
- }
- cout<<temp<<endl;
- }
- }