ZOJ 1087 Super Jumping! Jumping! Jumping!(简单DP)

来源:互联网 发布:linux怎么安装eclipse 编辑:程序博客网 时间:2024/06/06 03:42

方程:f[i]=max(f[j])+a[i](a[i]>a[j]&&0<=j<i)

答案是最大的f[i]

#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int maxn=1010;int dp[maxn],a[maxn],n;int main(){while (scanf("%d",&n)&&n){for (int i=0;i<n;++i){scanf("%d",&a[i]);dp[i]=a[i];}int ans=a[0];for (int i=1;i<n;++i){for (int j=0;j<i;++j){if(a[i]>a[j]&&a[i]+dp[j]>dp[i]){dp[i]=dp[j]+a[i];}}ans=max(ans,dp[i]);}printf("%d\n",ans);}return 0;}


原创粉丝点击