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 ...
随机推荐
- 服务端 unity
第一个问题 https://www.google.com.hk/search?q=internal+inconsistency+looking+up+disk+image+%27vm+disk+2%2 ...
- delete错误
今天找了半天delete错误,后来才知道是MTd和MDd模式的问题,MTd的内存申请和释放必须在同一个模块里面,接口上面不能使用stl等,MDd可以使用.改成MDd就可以了
- 《EnterLib PIAB深入剖析》系列博文汇总_转
转: http://www.cnblogs.com/artech/archive/2008/08/08/1263418.html
- 离散-ACM一道强有力的工具
最近几天散搞哭了,都怪以前看到没好好学... 就拿一道题来说事PKU:1151,以前Matrix67写过这道题的BLOG,引用一下: VOJ1056(http://www.vijos.cn/Probl ...
- POJ 1065 Wooden Sticks
Wooden Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16262 Accepted: 6748 Descri ...
- Sqli-labs less 56
Less-56 与less54.55形式是一致的,我们关注sql语句, $sql="SELECT * FROM security.users WHERE id=('$id') LIMIT 0 ...
- 提权后获取linux root密码
提权后获取linux root密码 2011-09-09 10:45:25 我来说两句 收藏 我要投稿 在webbackdoor本身是root(可能性小的可怜)或通过某漏洞溢出 ...
- 动态修改 NodeJS 程序中的变量值
如果一个 NodeJS 进程正在运行,有办法修改程序中的变量值么?答案是:通过 V8 的 Debugger 接口可以!本文将详细介绍实现步骤. 启动一个 HTTP Server 用简单的 Hello ...
- ZOJ3724 Delivery(树状数组??)
题意:给你一个有向图,第一类边是从第i个点到第i+1个点的,还有多出来的m条二类边,是从u到v的,同样是有向的.然后你要处理询问,从u到v经过最多一次二类边的最短距离是多少. 题目我觉得是神题,然后看 ...
- To Use Ubuntuubunt
1.rename PC; modify the /etc/hostname. 2.Use root account; 1.set the password for root account: sudo ...