原题连接:http://codeforces.com/contest/358/problem/D

题目大意:有n个兔子排成一排,给第i个兔子喂食后,在其左右两只兔子均未被喂食是获得ai的愉悦值,有一个被喂食后获得bi的愉悦值,两只都被喂食过会获得ci的愉悦值,求喂过所有的兔子后获得的最大愉悦值。
解题思路:可以采用dp思想

dp[i][0]表示第i个兔子比第i-1个兔子后喂食,前i-1个兔子获得的最大愉悦值

dp[i][1]表示第i个兔子比第i-1个兔子先喂食,前i-1个兔子获得的最大愉悦值

cst[k][i]表示输入矩阵的第k行,对应的收益值,具体背景参考题目描述。

转移方程: 分别考虑i-1比i-2是先喂还是后喂

dp[i][0]= max(dp[i-1][0]+joy[1][i-1],dp[i-1][1]+joy[0][i-1]);

dp[i][1]= max(dp[i-1][0]+joy[2][i-1],dp[i-1][1]+joy[1][i-1]);

边界条件:(边界条件可以放入转移方程中,参考代码)

dp[1][0]=cst[0][0]; 1比0后喂,考虑0的收益。
dp[1][1]=cst[1][0]; 1比0先喂,考虑0的收益。

思路来源:https://blog.csdn.net/kevinkitty_love/article/details/14002835

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<algorithm>
 6 #include<vector>
 7 #include<queue>
 8 #include<stack>
 9 #include<map>
10 #include<set>
11 #include<cmath>
12 using namespace std;
13 #define ll long long
14 #define ull unsigned long long
15 #define ldb long double
16 #define db double
17 #define fi first
18 #define se second
19 #define INF 0x3f3f3f3f
20 #define endl "\n"
21 #define rush() int T;cin>>T;while(T--)
22 #define mem(a,b) memset((a),(b),sizeof(a))
23 const db pi = acos((db)-1);
24 const ll MAXN = 3000;
25 const ll mod = 1e9+7;
26
27 int dp[MAXN+2][2];
28 int joy[3][MAXN+2];
29
30 int main()
31 {
32     int n;
33     scanf("%d",&n);
34     for(int j=0;j<3;j++)
35     {
36         for(int i=0;i<n;i++)
37         {
38             scanf("%d",&joy[j][i]);
39         }
40     }
41
42     dp[0][0]=-INF;
43     dp[0][1]=0;
44
45     for(int i=1;i<=n;i++)
46     {
47         dp[i][0]= max(dp[i-1][0]+joy[1][i-1],dp[i-1][1]+joy[0][i-1]);
48         dp[i][1]= max(dp[i-1][0]+joy[2][i-1],dp[i-1][1]+joy[1][i-1]);
49     }
50
51     printf("%d\n",dp[n][0]);
52
53     return 0;
54 }

转载于:https://www.cnblogs.com/Ogreee/p/10927713.html

Codeforces Round #208 (Div. 2)D. Dima and Hares相关推荐

  1. Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)

    题目大意 有 n(1≤n≤3*105) 匹马,每条马都有几个敌人(不超过 3 个),现在要求把这些马分成两部分(允许一部分中没有一条马),使得对于每条马,和它在同一部分中的敌人的数量不超过1个 给出了 ...

  2. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  3. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  4. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  5. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  6. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  7. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

  8. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  9. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

最新文章

  1. TA 们放肆摇晃的青春尾巴
  2. python自学路线-各个阶段的python学习路线?
  3. 数据结构(严蔚敏)之六——链式队列c语言实现
  4. 【前端5】vue:实例,插值表达式,v-,组件
  5. python hadoop streaming_Hadoop Streaming 使用及参数设置
  6. 摩托罗拉里程碑升级Android 2.2刷机知识
  7. 奇异值分解(SVD)和最小二乘解在解齐次线性超定方程中的应用
  8. Mac(OS X)下的环境变量配置不生效解决办法
  9. 用Aria2来替换迅雷
  10. 搭建自己的以图搜图系统 (一):10 行代码以图搜图
  11. YNWA,同样是我们普通人的鞭策
  12. 官网下载VMware Workstation Player 16、15、14
  13. MATLAB图像处理—imfindcircles的输出变量含义
  14. Linux_03_文档内容相关命令
  15. java 判断日期是同一天_java判断两个日期是否同一天的方法
  16. 一个网络请求的冒险之旅
  17. VC驿站黑客编程(关机,重启,注销)
  18. 【Python】pdf文件逐页转图片/修改图片存储大小脚本
  19. CPU被挖矿了,却找不到哪个进程!
  20. 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)

热门文章

  1. MySQL--数据库基础
  2. fcntl函数-文件控制函数
  3. STM32F103系列单片机学习笔记1方便以后查看
  4. 为什么百度网盘显示2055G下载时却显示容量不足
  5. request.getParameter(xxxx)获取不到值的一个原因
  6. PIC中的#pragma idata 和#pragma udata
  7. Android Zygote分析
  8. Go从入门到精通(一)go语言初识
  9. JZOJ 5938. 【NOIP2018模拟10.30】分离计划
  10. JZOJ 5397. 【NOIP2017提高A组模拟10.6】Biology