cf D. Dima and Hares

时间:2021-07-28 14:35:25

http://codeforces.com/contest/358/problem/D

题意:ai代表相邻的两个野兔都没有吃食物情况下的快乐系数,bi代表的是在相邻的两个野兔中有一个吃到食物的快乐系数,ci代表的是相邻的两个野兔都迟到事物的快乐系数,给你n个野兔的快乐系数,求最大快乐系数。

dp[i][0]表示先于i+1个吃到食物的最大快乐系数,dp[i][1]表示后于i+1个吃到食物的最大快乐系数。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 10000
using namespace std; int n;
int a[maxn],b[maxn],c[maxn];
int dp[maxn][]; int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=; i<=n; i++)
scanf("%d",&a[i]);
for(int i=; i<=n; i++)
scanf("%d",&b[i]);
for(int i=; i<=n; i++)
scanf("%d",&c[i]);
dp[n][]=a[n];
dp[n][]=b[n];
for(int j=n-; j>=; j--)
{
dp[j][]=max(dp[j+][]+b[j],dp[j+][]+a[j]);
dp[j][]=max(dp[j+][]+b[j],dp[j+][]+c[j]);
}
printf("%d\n",dp[][]);
}
return ;
}