P1023 奶牛的锻炼
背景
描述
输入格式
接下来N行,每行一个整数,代表D_i。
输出格式
测试样例1
输入
5 2
5
3
4
2
10
输出
9
备注
Vivian Snow
广东汕头聿怀初级中学NOIp第一次训练用题
1.这分钟跑动,即F[I,J]:=F[I-1,J-1]+D[I];
2.上一分钟已经歇息到0了,但这一分钟我不跑,依然歇息,即:F[I,0]:=F[I-1,0];
3.这一分钟在歇息,从前面的某一个时刻开始歇息,在这个时刻恰好歇息到0,这些时刻只能由F[I-K,K]转移到,枚举一个K,其中K<=I。
2和3情况转移到的状态是一个,需要取一个MAX。
假设我们是用f[i][j]来表示i分钟j疲劳时的最大值。
这时,我定义只要在f数组里i!=0的值必然不是休息中的。
即 先把问题看做:奶牛不能休息,每次只能向前跑。第i分钟跑d[i]米。
那么就会有: f[i][j]=f[i-1][j-1]+d[i];
然后 在每次处理的时候 加上一句判断:
f[i+j][0]=max(f[i+j][0],f[i-1][j+1]);
也就是 一旦休息就直接归入f[?][0]的序列中 不带入一般的考虑 从而减轻思考负担
然后 到每分钟的f[i][0]时 可以这样去判断:
f[i][0]=max(f[i][0],f[i-1][0]); // 这句是因为题目漏洞
f[i][0]=max(f[i][0],f[i-1][1]);
上述题目漏洞为:奶牛在疲劳为0时,仍可休息,不降低疲劳。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define inf 1000000000
using namespace std;
int n,m,d[];
int t=;
int f[][]; int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&d[i]);
for(int i=;i<=n;i++)
{
f[i][]=f[i-][];
for(int j=;j<=m;j++)
{
f[i][j]=max(f[i][j],f[i-][j-]+d[i]);
if(j<=i)f[i][]=max(f[i][],f[i-j][j]);
}
}
cout<<f[n][];
puts("");
return ;
}
Q:为什么当前疲劳值小于当前时间就要休息
P1023 奶牛的锻炼的更多相关文章
- [TYVJ] P1023 奶牛的锻炼
奶牛的锻炼 背景 Background USACO 描述 Description 奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息.若她在第i分钟跑步,可以跑出D_i米,同时疲倦程度增加 ...
- TYVJ P1023 奶牛的锻炼 Label:dp
背景 USACO 描述 奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息.若她在第i分钟跑步,可以跑出D_i米,同时疲倦程度增加1(初始为0).若她在第i分钟休息,则疲倦程度减少1.无论何时 ...
- tyvj1023 - 奶牛的锻炼 ——DP
题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1023 #include <cstdio> #include <algorithm> ...
- 动归专题QAQ(两天创造的刷题记录哟!✿✿ヽ(°▽°)ノ✿✿)(未填坑)
1092 采药:由于没有限制开始时间和结束时间,01背包就好了 1095 开心的金明:01背包,无fuck说 1104 摆花:f[i][j]表示摆了i种花,第i种花摆了j种的方案数,乱转移0.0(感觉 ...
- 【POJ - 2387】Til the Cows Come Home(最短路径 Dijkstra算法)
Til the Cows Come Home 大奶牛很热爱加班,他和朋友在凌晨一点吃完海底捞后又一个人回公司加班,为了多加班他希望可以找最短的距离回到公司.深圳市里有N个(2 <= N < ...
- 奶牛健美操(codevs 3279)
题目描述 Description Farmer John为了保持奶牛们的健康,让可怜的奶牛们不停在牧场之间 的小路上奔跑.这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点 ...
- BZOJ2097[Usaco2010 Dec] 奶牛健美操
我猜我这样继续做水题会狗带 和模拟赛的题很像,贪心搞一下. #include<bits/stdc++.h> using namespace std; int read(){ ,f=;cha ...
- 【BZOJ】【1046】/【POJ】【3613】【USACO 2007 Nov】Cow Relays 奶牛接力跑
倍增+Floyd 题解:http://www.cnblogs.com/lmnx/archive/2012/05/03/2481217.html 神题啊= =Floyd真是博大精深…… 题目大意为求S到 ...
- BZOJ 1706: [usaco2007 Nov]relays 奶牛接力跑
Description FJ的N(2 <= N <= 1,000,000)头奶牛选择了接力跑作为她们的日常锻炼项目.至于进行接力跑的地点 自然是在牧场中现有的T(2 <= T < ...
随机推荐
- 下载服务器dll文件并动态加载
1.新加一个类库 namespace ClassLibrary1 { public class Class1 { public int Add(int a, int b) { return a + b ...
- 重绘panel控件,实现panel的阴影效果
最近想在项目中添加一个要有阴影的panel控件,找了好多资料,最后通过采用图片的方式实现了panel的阴影效果,效果图如下: 重绘代码如下: using System; using System.Co ...
- Linux磁盘与文件系统管理
df df(disk free) 功能说明:显示磁盘的相关信息.语 法:df [-ahHiklmPT][--block-size=<区块大小>][-t <文件系统类型>][-x ...
- OPatch failed with error code 73
前几天给一套LINUX下的RAC数据库打补丁升级,有一台机器更新失败了,相关的异常内容如下: Restoring "/u01/app/oracle/11.2.0/db_1" to ...
- Sales_item
#ifndef SALESITEM_H #define SALESITEM_H // Definition of Sales_item class and related functions goes ...
- Mysql ubuntu下的安装卸载
删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-ge ...
- 腾讯WEB前端开发三轮面试经历及面试题
[一面]~=110分钟 2013/04/24 11:20 星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理 延 ...
- 【BZOJ 1005】[HNOI2008]明明的烦恼
Description 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 ...
- cocos2dx中的CCRect的用法
CCRect是cocos2dx中的一块矩形区域 常用于碰撞检测及渲染时限定纹理的大小 CCRect rect=spr.boundingBox(); CCRect rect=CCRect(0,0,spr ...
- Notification用法
String message = "You should click come back now. It is time out more than 10 minutes."; / ...