HDU-1087

.//这是一道DP,题目求得是最大上升子序和

AC代码:

#include<stdio.h>
#include<algorithm>
using namespace std;
#include<string.h>
#define N 1005
#define INF -0x3f3f3f3f
int a[N]; int dp[N]; int main() { int n; while(scanf("%d",&n)!=EOF&&n) { int i,j;
        memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) {
            scanf("%d",&a[i]); } int ans; for(i=1;i<=n;i++) {
            ans=INF; for(j=0;j<i;j++) { if(a[i]>a[j]) {
                    ans=max(dp[j],ans); } }
            dp[i]=ans+a[i]; } int M=INF; for(i=1;i<=n;i++) { if(M<dp[i]) {
                M=dp[i]; } }
        printf("%d\n",M); } return 0; }

你可能感兴趣的:(HDU-1087)