Basketball Exercise(CF) ———— 简单dp
题目连接
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e5+50;
ll dp[2][maxn];
ll a[2][maxn];
ll n;
void input(ll m)
{
for(ll i = 0;i <= 1;i++)
{
for(ll j = 1;j <= m;j++)cin>>a[i][j];
}
}
int main()
{
// cout <<sizeof(a)+sizeof(dp)<<endl;
ios_base::sync_with_stdio(false);
ll ans = 0;
cin>>n;
input(n);
dp[0][n] = a[0][n];
dp[1][n] = a[1][n];
ans = max(ans, max(dp[0][n], dp[1][n]));
for(ll i = n-1;i >= 1;i--)
{
if(i+2 <= n)
{
dp[0][i]+=max(dp[1][i+1],dp[1][i+2])+a[0][i];
ans = max(ans, dp[0][i]);
dp[1][i]+= max(dp[0][i+1], dp[0][i+2])+a[1][i];
ans = max(ans, dp[1][i]);
}
else
{
dp[0][i] +=dp[1][i+1]+a[0][i];
ans = max(dp[0][i+1], ans);
dp[1][i]+=dp[0][i+1]+a[1][i];
ans = max(ans, dp[1][i]);
}
}
cout <<ans<<endl;
return 0;
}
还没有评论,来说两句吧...