LIS-hdu1087

xiaoxiao2021-02-27  336

本来我想找一道lis的裸题,没想到这个还要麻烦一丢丢。并且不需要计算长度。。 如果j

#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; /*之所以写着一道题是因为要为其他一个做铺垫。 */ const int maxn=1002; int a[maxn]; int dp[maxn]; int main() { int t; while(~scanf("%d",&t)) { if(t==0) break; for(int i=0;i<t;i++) scanf("%d",&a[i]); for(int i=0;i<t;i++) dp[i]=1; for(int i=0;i<t;i++) { dp[i]=a[i]; for(int j=0;j<i;j++) { if(a[i]>a[j]) dp[i]=max(dp[i],dp[j]+a[i]); } } int sum=-1; for(int i=0;i<t;i++) sum=max(sum,dp[i]); cout<<sum<<endl; } return 0; }
转载请注明原文地址: https://www.6miu.com/read-4475.html

最新回复(0)