题意:有最多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)的更多相关文章

  1. Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)

    A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...

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

  3. ECNA 2017

    ECNA 2017 Abstract Art 题目描述:求\(n\)个多边形的面积并. solution 据说有模板. Craters 题目描述:给定\(n\)个圆,求凸包的周长. solution ...

  4. Careercup 论坛上较有意思的题目整理

    # 数据结构类 ### 线段树 segment tree http://www.careercup.com/question?id=5165570324430848 找区间内的value的个数 二维线 ...

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

  6. Wannafly挑战赛1

    地址:https://www.nowcoder.com/acm/contest/15#question A(树形dp) 分析 dp[i][0],dp[i][1]分别表示以i为根的子树中,有多少个点到i ...

  7. hdu 3401 单调队列优化DP

    Trade Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  8. dp --- hdu 4939 : Stupid Tower Defense

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

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

随机推荐

  1. <form> 标签的entype属性

    entype属性规定在发送到服务器之前应该如何对表单数据进行编码. 属性值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认) multipart/ ...

  2. Matlab7.1——启动时只显示Logo

    1. 现象 Matlab7.1在启动时只显示Matlab的Logo: 2. 解决方法 听我的吧,这个是官方办法,我也亲自试过了1结束matlab进程:2在C:\user\APPDATA\Roaming ...

  3. golang中管道热替换

    golang中管道替换问题 https://blog.csdn.net/cyk2396/article/details/78875347 1.运行以下代码: var chan1 chan int va ...

  4. POJ2352 star

    传送门 这道题有个非常好听的名字,求二维偏序! 听起来似乎很高端,但就是让求满足对于每个i,xi < xj && yi < yj的个数. 这道题特别良心,给的顺序都是y递增 ...

  5. Java IO 字节流与字符流 (五)

    Java的IO流分为字符流(Reader,Writer)和字节流(InputStream,OutputStream),字节流顾名思义字节流就是将文件的内容读取到字节数组,然后再输出到另一个文件中.而字 ...

  6. mybatis 注解写法 多层嵌套foreach,调用存储过程,批量插入数据

    @Select("<script>" + "DECLARE @edi_Invoice_Details edi_Invoice_Details;" + ...

  7. C++ 值初始化和默认初始化

    对于初始化的问题,我之前一直傻傻分不清.有关初始化以及赋值的区别也是一问题,这次回过头来看,配合<<CSAPP>>的内容,对初始化有了一些新的认识. 声明: 在环境/上下文中指 ...

  8. 给独立搭建的博客启用https的过程

    申请SSL证书 我自己独立搭建的博客部署在阿里云服务器上,因此我就先搜索阿里云启用https的方法,网上有比较详细的讲解,在此提供一个参考网址: https://blog.csdn.net/csluc ...

  9. 贪心 HDOJ 5355 Cake

    好的,数据加强了,wa了 题目传送门 /* 题意:1到n分成m组,每组和相等 贪心:先判断明显不符合的情况,否则肯定有解(可能数据弱?).贪心的思路是按照当前的最大值来取 如果最大值大于所需要的数字, ...

  10. 372 Super Pow 超级次方

    你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出.示例 1:a = 2b = [3]结果: 8示例 2:a = 2b = [1,0]结果: 102 ...