动态规划——1087 Super Jumping! Jumping! Jumping!

来源:互联网 发布:bamboo mac 手绘 编辑:程序博客网 时间:2024/06/06 02:35

这道题是最长上升子序列的变形,把长度变成和即可

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#define maxn 1010using namespace std;typedef long long ll;int main(){    int n;    ll a[maxn],dp[maxn];    while(scanf("%d",&n) && n != 0)    {        for(int i = 0; i <= n; i++)            dp[i] = 0;        for(int i = 1; i <= n; i++)            cin>>a[i];        ll max1 = 0;        for(int i = 1; i <= n; i++)        {            dp[i] = a[i];            for(int j = 1; j < i; j++)            {                if(a[i] > a[j])                {                    dp[i] = max(dp[j] + a[i], dp[i]);//这里是在原先已更新的基础上换而不是与a[i]相比                }            }             max1 = max(dp[i],max1);        }        cout<<max1<<endl;    }    return 0;}


原创粉丝点击