【文章标题打着转载,是因为不是自己想出来的解题,但下面的文字是自己敲的【~捂脸*>_<*~】】

题目就不贴了~~~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+*^*】的更多相关文章

  1. Codeforces 358D Dima and Hares:dp【只考虑相邻元素】

    题目链接:http://codeforces.com/problemset/problem/358/D 题意: 有n个物品A[i]摆成一排,你要按照某一个顺序将它们全部取走. 其中,取走A[i]的收益 ...

  2. Codeforces Round #208 (Div. 2) 358D Dima and Hares

    题目链接:http://codeforces.com/problemset/problem/358/D 开始题意理解错,整个就跪了= = 题目大意:从1到n的位置取数,取数的得到值与周围的数有没有取过 ...

  3. [CodeForce]358D Dima and Hares

    有N<3000只宠物要喂,每次只能喂一只,每喂一只宠物,宠物的满足度取决于: 1 紧靠的两个邻居都没喂,a[i] 2 邻居中有一个喂过了,b[i] 3 两个邻居都喂过了,c[i] 把所有宠物喂一 ...

  4. cf D. Dima and Hares

    http://codeforces.com/contest/358/problem/D 题意:ai代表相邻的两个野兔都没有吃食物情况下的快乐系数,bi代表的是在相邻的两个野兔中有一个吃到食物的快乐系数 ...

  5. Codeforces 358D Dima and Hares

    http://codeforces.com/contest/358/problem/D 题意:给出n个数,每个数取走的贡献与相邻的数有关,如果取这个数的时候,左右的数都还没被取,那么权值为a,如果左右 ...

  6. codeforces358D Dima and Hares【dp】

    从本质入手,这个东西影响取值的就是相邻两个哪个先取 设f[i][0/1]为前i个(i-1,i)中先取i/i-1的值(这里不算上i的贡献 转移就显然了,注意要先复制-inf #include<io ...

  7. 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 ...

  8. CF358D Dima and Hares

    CF358D Dima and Hares 洛谷评测传送门 题目描述 Dima liked the present he got from Inna very much. He liked the p ...

  9. CF 1405E Fixed Point Removal【线段树上二分】

    CF 1405E Fixed Point Removal[线段树上二分]  题意: 给定长度为\(n\)的序列\(A\),每次操作可以把\(A_i = i\)(即值等于其下标)的数删掉,然后剩下的数组 ...

  10. CF A.Mishka and Contest【双指针/模拟】

    [链接]:CF/4892 [题意]: 一个人解决n个问题,这个问题的值比k小, 每次只能解决最左边的或者最右边的问题 解决了就消失了.问这个人能解决多少个问题. [代码]: #include<b ...

随机推荐

  1. 在mac下使用brew和brew cask轻松实现软件安装

    Brew(homebrew) 1.简介 Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具. Mac 自带ruby 所以安 ...

  2. Extjs 选择元素涉及方法总结

    本文主要是解释Extjs在使用过程中使用的相关选择方法: 1.首先解释第一组概念: Ext.get(String/HTMLElement/Ext.Element el) Ext.getCmp(Stri ...

  3. Leetcode#128 Longest Consecutive Sequence

    原题地址 1. 把所有元素都塞到集合里2. 遍历所有元素,对于每个元素,如果集合里没有,就算了,如果有的话,就向左向右拓展,找到最长的连续范围,同时在每次找的时候都把找到的删掉.这样做保证了同样的连续 ...

  4. c++ 遍历ini

    inline void CDLG_SET1::EnumIniFile(LPCTSTR pFilePath, CString strKey) { TCHAR strAppNameTemp[];//所有A ...

  5. .NET设计模式(17):命令模式(Command Pattern)(转)

    概述 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将“行为 ...

  6. 数位DP之小小结

    资料链接:http://wenku.baidu.com/view/9de41d51168884868662d623.html http://wenku.baidu.com/view/d2414ffe0 ...

  7. Request/Server的相关topic

    Request---------Server模式 HTTP 协议--------->这个可能返回json, 也可能是HTML HTML页面处理的流程以及资源文件的加载 浏览器最大连接数 js资源 ...

  8. 疯狂java讲义——继承

    本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表 ...

  9. Find the smallest number whose digits multiply to a given number n

    Given a number ‘n’, find the smallest number ‘p’ such that if we multiply all digits of ‘p’, we get ...

  10. 十大技巧优化Android App性能

    无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的. 那么,如何能开发出更高性能的Android App?相信是软 ...