gym101673G. A Question of Ingestion (DP)
题意:有最多100天 每天有一个食物量 你一开始有一个最大胃口表示你最开始能吃多少食物
如果你昨天吃了 那么今天的胃口为昨天的2/3 如果你前天吃了 昨天没吃 那么你的胃口可以恢复到前天的情况
如果你有连续两天没吃了 那么你就可以恢复到最大胃口了 问怎样安排使一共吃到的食物最多
题解:就裸裸的DP了,反正从没出过DP(的DP选手
dp[i][j][k]表示第i天结束后 当前的胃口能级为j 这一天进行的操作k k为0表示今天吃了 k为1表示今天没吃
那么转移也没什么难的了 转移模拟这几种状态即可
今天吃由昨天转移来的
dp[i][j][0] = max(dp[i][j][0], dp[i - 1][j - 1][0] + 今天吃);
dp[i][j][1] = max(dp[i][j][1], dp[i - 1][j][0]); 今天不吃
今天吃由前天转移来的 dp[i][j][0] = max(dp[i][j][0], dp[i - 2][j][0] + 今天吃]));
还要处理一下由大前天转移过来的 这时候你今天吃 能级就为1 今天不吃能级就为0
反正就xjb搞吧... 我和铜牌题打起来了
#include <bits/stdc++.h>
using namespace std; int q[];
int e[];
int dp[][][]; int main()
{
int n, m;
scanf("%d%d", &n, &m);
memset(dp, , sizeof(dp)); for(int i = ; i <= n; i++) scanf("%d", &q[i]);
e[] = m;
for(int i = ; i <= n; i++) e[i] = e[i - ] * / ; for(int i = ; i <= n; i++)
{
dp[i][][] = min(q[i], e[]);
if(i > )
{
for(int j = ; j <= i - ; j++)
{
dp[i][][] = max(dp[i][][], dp[i - ][j][] + min(q[i], e[]));
dp[i][][] = max(dp[i][][], dp[i - ][j][] + min(q[i], e[]));
}
} if(i > )
{
for(int j = ; j <= i - ; j++)
{
dp[i][][] = max(dp[i][][], dp[i - ][j][]);
dp[i][][] = max(dp[i][][], dp[i - ][j][]);
}
} for(int j = ; j <= i; j++)
{
dp[i][j][] = max(dp[i][j][], dp[i - ][j - ][] + min(q[i], e[j]));
dp[i][j][] = max(dp[i][j][], dp[i - ][j][]);
if(i > )
dp[i][j][] = max(dp[i][j][], dp[i - ][j][] + min(q[i], e[j]));
}
} int ans = ;
for(int i = ; i <= n; i++)
{
for(int j = ; j <= i; j++)
for(int k = ; k < ; k++)
ans = max(ans, dp[i][j][k]);
}
printf("%d\n", ans);
return ;
}
/*
8 900
900 600 40 400 20 266 10 177
*/
gym101673G. A Question of Ingestion (DP)的更多相关文章
- Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)
A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...
- 2017-2018 ACM-ICPC East Central North America Regional Contest (ECNA 2017) Solution
A:Abstract Art 题意:给出n个多边形,求n个多边形分别的面积和,以及面积并 思路:模板 #include <bits/stdc++.h> using namespace st ...
- ECNA 2017
ECNA 2017 Abstract Art 题目描述:求\(n\)个多边形的面积并. solution 据说有模板. Craters 题目描述:给定\(n\)个圆,求凸包的周长. solution ...
- Careercup 论坛上较有意思的题目整理
# 数据结构类 ### 线段树 segment tree http://www.careercup.com/question?id=5165570324430848 找区间内的value的个数 二维线 ...
- LeetCode OJ:Climbing Stairs(攀爬台阶)
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- Wannafly挑战赛1
地址:https://www.nowcoder.com/acm/contest/15#question A(树形dp) 分析 dp[i][0],dp[i][1]分别表示以i为根的子树中,有多少个点到i ...
- hdu 3401 单调队列优化DP
Trade Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- dp --- hdu 4939 : Stupid Tower Defense
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- CF687C. The Values You Can Make[背包DP]
C. The Values You Can Make time limit per test 2 seconds memory limit per test 256 megabytes input s ...
随机推荐
- Java中的字节输入出流和字符输入输出流
Java中的字节输入出流和字符输入输出流 以下哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D In ...
- 将JSON对象转换成IList,好用linq
JObject JToken JProperty IList<> 搞得头都大了,记而备忘: JObject json = ..... JToken[] jps = json["r ...
- android 反编译 for mac
android反编译现在来说的话很方便. windows上有不好好用的工具,当然我比较喜欢dex2jar 这个是比较好用的,打开他的文件目录会发现,里面有很多.sh .bat文件 那也就是说在wind ...
- [Codeforces 1037D] Valid BFS?
[题目链接] http://codeforces.com/problemset/problem/1037/D [算法] 首先求出每个点的父节点 , 每棵子树的大小 然后判断BFS序是否合法即可 时间复 ...
- [ZJOI 2007] 矩阵游戏
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1059 [算法] 二分图最大匹配 时间复杂度 : O(N^3) [代码] #inclu ...
- UVA 10559 Blocks —— 区间DP
题目:https://www.luogu.org/problemnew/show/UVA10559 区间DP,有点难想: 为了方便,先把原来就是连续一段相同颜色的点看做一个点,记一下长度: f[i][ ...
- bzoj1016 [JSOI2008]最小生成树计数——Kruskal+矩阵树定理
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1016 从 Kruskal 算法的过程来考虑产生多种方案的原因,就是边权相同的边有一样的功能, ...
- bzoj4237 稻草人——分治
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4237 分治: 先把所有点按 y 排序,然后二分递归: 对于每个 mid ,计算经过它的矩形的 ...
- 源码阅读之ArrayList(JDK8)
ArrayList概述 ArrayList是一个的可变数组的实现,实现了所有可选列表操作,并允许包括 null 在内的所有元素.每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组 ...
- GitHub安装使用教程
由于重复率比较大,为了尊重他人的成果,先在此注明本文是在学习了以下博文之后的一些总结归纳,并且说明了一些本人实际使用GitHub遇到的问题,并给出了解决办法 .本人的操作系统是window10,所 ...