不解释,太水了,但没想到我也能推dp,该开始练练了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=
1000+
100;
int a[maxn],dp[maxn];
int n;
int main()
{
while(~scanf(
"%d",&n)&&
n)
{
int maxx=
0;
memset(dp,0,
sizeof(dp));
for(
int i=
1;i<=n;i++
)
scanf("%d",&
a[i]);
for(
int i=
1;i<=n;i++
)
{ int maxi=
0;
for(
int j=
1;j<i;j++
)
if(a[j]<a[i]) maxi=
max(maxi,dp[j]);
dp[i]=a[i]+
maxi;
maxx=
max(maxx,dp[i]);
}
printf("%d\n",maxx);
}
return 0;
}
转载于:https://www.cnblogs.com/Wangwanxiang/p/7705377.html