《动态规划》hdoj 1087 最大递增子段和

水题
#include<stdio.h>
int dp[1005],num[1005]; int max(int x,int y) { return x>y?x:y; } int main() { int n,ans,i,j; while(scanf("%d",&n)&&n) {
        memset(dp,0,sizeof(dp));
        ans=0; for(i=1;i<=n;i++) {
            scanf("%d",&num[i]);
            dp[i]=num[i]; } for(i=1;i<=n;i++) { for(j=1;j<i;j++) { if(num[i]>num[j])
                    dp[i]=max(dp[i],dp[j]+num[i]); } } for(i=1;i<=n;i++) { if(dp[i]>ans) ans=dp[i]; }
        printf("%d\n",ans); } }

你可能感兴趣的:(《动态规划》hdoj 1087 最大递增子段和)