Codeforces Round #208 (Div. 2) D. Dima and Hares DP
#include<cstdio> #include<iostream> using namespace std; #define maxn 3100 int a[maxn],b[maxn],c[maxn]; int dp[maxn][2]; int main() { int i,j,n; cin>>n; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) cin>>b[i]; for(i=1;i<=n;i++) cin>>c[i]; dp[n][0]=a[n]; dp[n][1]=b[n]; for(i=n-1;i>=1;i--) {//dp[i][0]第i只兔比第i-1只先喂,dp[i][1]第i只兔比第i-1只兔后喂 dp[i][0]=max(dp[i+1][0]+b[i],dp[i+1][1]+a[i]); dp[i][1]=max(dp[i+1][1]+b[i],dp[i+1][0]+c[i]); } cout<<dp[1][0]<<endl; }
浙公网安备 33010602011771号