CF-358D-Dima and Hares【T^T+*^*】
【文章标题打着转载,是因为不是自己想出来的解题,但下面的文字是自己敲的【~捂脸*>_<*~】】
题目就不贴了~~~DP+greedy的题。弱爆了看别人的代码思路过的。T^T但还是自己复述一遍吧~~
刚开始看题目有点下不了手,不知道该怎么喂傲娇的小兔纸才好。
然后看了解题才知道,哦,原来是酱紫:就是喂某只小兔纸,可是收获的那只兔纸快乐值跟周围的兔纸有木有喂饱有关~~然后全部兔纸都要喂。
dp转移方程如下:
dp[i][0] = max(d[i-1][0] + b[i-1],d[i-1][1] + c[i-1]); //d[i][0] 代表i-1只兔子没被喂过 所以前者的喂兔纸的顺序是:i-> i-1 -> i-2;后者喂兔纸的顺序是:i-2 -> i -> i-1
dp[i][1] = max(d[i-1][0] + a[i-1],d[i-1][1] + b[i-1]). //d[i][1] 代表i-1只兔子被喂过 所以前者的喂兔纸的顺序是:i-1 -> i -> i-2;后者喂兔纸的顺序是:i-2 -> i-1 -> i
蓝后代码如下了~~
#include<iostream> using namespace std; const int Max = 3005;
int dp[Max][2];
int max(int &a, int &b)
{
return a > b?a:b;
}
int main()
{
int n;
cin>>n;
int a[Max],b[Max],c[Max];
for(int i = 1; i <= n; i++)
cin>>a[i];
for(int i = 1; i <= n; i++)
cin>>b[i];
for(int i = 1; i <= n; i++)
cin>>c[i];
for(int i = 0; i < Max; i++)
for(int j = 0; j < 2; j++)
dp[i][j] = 0;
if(n == 1) {cout<<a[1]<<endl; return 0;}
//dp[i][0]表示i-1没取过,dp[i][1]表示i-1取过
dp[2][0] = b[1];
dp[2][1] = a[1];
for(int i = 3; i <= n; i++)
{
dp[i][0] = max(dp[i-1][0]+b[i-1],dp[i-1][1]+c[i-1]);
dp[i][1] = max(dp[i-1][0]+a[i-1],dp[i-1][1]+b[i-1]);
}
int as;
as = max(dp[n][0]+a[n],dp[n][1]+b[n]);
cout<<as<<endl;
return 0;
}
CF-358D-Dima and Hares【T^T+*^*】的更多相关文章
- Codeforces 358D Dima and Hares:dp【只考虑相邻元素】
题目链接:http://codeforces.com/problemset/problem/358/D 题意: 有n个物品A[i]摆成一排,你要按照某一个顺序将它们全部取走. 其中,取走A[i]的收益 ...
- Codeforces Round #208 (Div. 2) 358D Dima and Hares
题目链接:http://codeforces.com/problemset/problem/358/D 开始题意理解错,整个就跪了= = 题目大意:从1到n的位置取数,取数的得到值与周围的数有没有取过 ...
- [CodeForce]358D Dima and Hares
有N<3000只宠物要喂,每次只能喂一只,每喂一只宠物,宠物的满足度取决于: 1 紧靠的两个邻居都没喂,a[i] 2 邻居中有一个喂过了,b[i] 3 两个邻居都喂过了,c[i] 把所有宠物喂一 ...
- cf D. Dima and Hares
http://codeforces.com/contest/358/problem/D 题意:ai代表相邻的两个野兔都没有吃食物情况下的快乐系数,bi代表的是在相邻的两个野兔中有一个吃到食物的快乐系数 ...
- Codeforces 358D Dima and Hares
http://codeforces.com/contest/358/problem/D 题意:给出n个数,每个数取走的贡献与相邻的数有关,如果取这个数的时候,左右的数都还没被取,那么权值为a,如果左右 ...
- codeforces358D Dima and Hares【dp】
从本质入手,这个东西影响取值的就是相邻两个哪个先取 设f[i][0/1]为前i个(i-1,i)中先取i/i-1的值(这里不算上i的贡献 转移就显然了,注意要先复制-inf #include<io ...
- Codeforces 358 D. Dima and Hares
dp[i][0]表示i号兔子先于i-1号兔子喂食,dp[i][1]反过来. 倒着DP D. Dima and Hares time limit per test 2 seconds memory li ...
- CF358D Dima and Hares
CF358D Dima and Hares 洛谷评测传送门 题目描述 Dima liked the present he got from Inna very much. He liked the p ...
- CF 1405E Fixed Point Removal【线段树上二分】
CF 1405E Fixed Point Removal[线段树上二分] 题意: 给定长度为\(n\)的序列\(A\),每次操作可以把\(A_i = i\)(即值等于其下标)的数删掉,然后剩下的数组 ...
- CF A.Mishka and Contest【双指针/模拟】
[链接]:CF/4892 [题意]: 一个人解决n个问题,这个问题的值比k小, 每次只能解决最左边的或者最右边的问题 解决了就消失了.问这个人能解决多少个问题. [代码]: #include<b ...
随机推荐
- 了解Git
对于计算机软件初学者来说Git并没有太多了解, 以前没有接触过,但是老师说对其进行了解,也没有什么概念,只有通过上网进行了解 . 了解到的大概内容如下: ...
- 发送Http Get和Post请求
发送Get请求 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "GET"; r ...
- jquery $.ajax方法
$.ajax({ timeout: 3000, cache:false, global:false, type: "POST", url: WEB_URL+"/logic ...
- C语言预处理命令
1.#error Directive (C/C++) The #error directive emits a user-specified error message at compile time ...
- PowerDesigner(七)-数据库的生成和修改(转)
数据库的生成和修改 使用ODBC接口连接数据库 访问数据库 预测数据库大小 生成数据库及数据库对象 PDM与用户数据库的同步 使用测试数据 暂不详述.
- remoting技术
转: http://www.cnblogs.com/rickie/category/5082.html
- js获取服务器时间
Ajax HTTP Head法原理:一般服务器在发送静态页面的时候(apache, nginx, lighttpd就目前所知)都是会在 HTTP 头里带一个Date的头信息的,那么我用Ajax直接取头 ...
- 简约的单页应用引擎:sonnyJS
点这里 SonnyJS是一个简约的单页应用引擎和HTML预处理器,旨在帮助开发人员和设计人员创建难以置信的强大和快速的单页网站. 主要特性: 模板嵌套,模板继承 动态同步模板路由(非Ajax) 跨窗口 ...
- POJ 2105
#include <iostream> #include <cmath> #include <string> using namespace std; int ma ...
- DF学Mysql(一)——数据库基本操作
1.创建数据库 create Database <数据库名>; 注意:1)数据库名由字母.下划线.@.#和$组成 2)首字母不能是数字和$符号 3)不允许有空格和特殊字符 2.查看数据库 ...