ZJ b589: 超級馬拉松賽
就DP
下一項是當前項+當前項值
下兩項是當前項+2*當前項
以下為code
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define AC ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int main()
{
AC
ll n;
while(cin>>n&&n)
{
vector<ll> vec(n),dp(n+2);
for(ll i=0;i<n;i++)
cin>>vec[i];
for(ll i=0;i<n;i++)
{
dp[i+1]=max(dp[i+1],dp[i]+vec[i]);
dp[i+2]=max(dp[i+2],dp[i]+2*vec[i]);
}
cout<<max(dp[n],dp[n+1])<<'\n';
}
}
留言
張貼留言