标签:
Description
Input
Output
Sample Input
Sample Output
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; const int maxn=1005; int value[maxn]; int dp[maxn]; int main(){ int n; //scanf("%d",&n); while(scanf("%d",&n)!=EOF){ if(n==0) break; for(int i=1;i<=n;i++){ scanf("%d",&value[i]); dp[i]=value[i]; } int ans=-1; for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(value[i]>value[j]&&dp[i]<dp[j]+value[i]) dp[i]=dp[j]+value[i]; } ans=max(ans,dp[i]); } printf("%d\n",ans); } return 0; }
Description
Input
Output
Sample Input
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; const int maxn=200; struct node{ int x,y,z; }dp[maxn]; bool cmp(const struct node t1,const struct node t2){ if(t1.x!=t2.x) return t1.x<t2.x; return t1.y<t2.y; } int main(){ int cas=1; int n; while(scanf("%d",&n)!=EOF){ int cnt=0; if(n==0) break; int tx,ty,tz; for(int i=1;i<=n;i++){ scanf("%d%d%d",&tx,&ty,&tz); dp[cnt].x=tx,dp[cnt].y=ty,dp[cnt].z=tz,cnt++; dp[cnt].x=tx,dp[cnt].y=tz,dp[cnt].z=ty,cnt++; dp[cnt].x=ty,dp[cnt].y=tx,dp[cnt].z=tz,cnt++; dp[cnt].x=ty,dp[cnt].y=tz,dp[cnt].z=tx,cnt++; dp[cnt].x=tz,dp[cnt].y=tx,dp[cnt].z=ty,cnt++; dp[cnt].x=tz,dp[cnt].y=ty,dp[cnt].z=tx,cnt++; } sort(dp,dp+cnt,cmp); for(int i=0;i<cnt;i++){ int tmp=-1; for(int j=0;j<i;j++){ if((((dp[i].x>dp[j].x)&&(dp[i].y>dp[j].y))||((dp[i].x>dp[j].y)&&(dp[i].y>dp[j].x)))&&(dp[j].z>tmp)){ tmp=dp[j].z; } } if(tmp!=-1) dp[i].z+=tmp; } int ans=-1; for(int i=0;i<cnt;i++){ ans=max(ans,dp[i].z); } printf("Case %d: maximum height = %d\n",cas++,ans); } return 0; }
HDU 1069&&HDU 1087 (DP 最长序列之和)
标签:
原文地址:http://www.cnblogs.com/13224ACMer/p/4990110.html