Description

奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1<=N<=10,000)
分钟的晨跑。在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息。贝茜的体力限制了她跑步的距离。更具
体地,如果贝茜选择在第i分钟内跑步,她可以在这一分钟内跑D_i(1<=D_i<=1,000)米,并且她的疲劳度会增加1。
不过,无论何时贝茜的疲劳度都不能超过M(1<=M<=500)。如果贝茜选择休息,那么她的疲劳度就会每分钟减少1,
但她必须休息到疲劳度恢复到0为止。在疲劳度为0时休息的话,疲劳度不会再变动。晨跑开始时,贝茜的疲劳度为
0。还有,在N分钟的锻炼结束时,贝茜的疲劳度也必须恢复到0,否则她将没有足够的精力来对付这一整天中剩下
的事情。请你计算一下,贝茜最多能跑多少米。

Input

* 第1行: 2个用空格隔开的整数:N 和 M
* 第2..N+1行: 第i+1为1个整数:D_i

Output

* 第1行: 输出1个整数,表示在满足所有限制条件的情况下,贝茜能跑的最大距离

Sample Input

5 2
5
3
4
2
10

Sample Output

9
输出说明:
贝茜在第1分钟内选择跑步(跑了5米),在第2分钟内休息,在第3分钟内跑
步(跑了4米),剩余的时间都用来休息。因为在晨跑结束时贝茜的疲劳度必须
为0,所以她不能在第5分钟内选择跑步。
思路 : 动态规划,dp[i]表示到第i分钟一定是休息好的,此时可以走的最大的距离。
dp[i]可以先等于dp[i-1],表示第i-1分钟的时候也是休息好的。 
其他的可以枚举之前跑了j分钟和休息了j分钟。 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define R register int
 4 #define rep(i,a,b) for(R i=a;i<=b;i++)
 5 #define Rep(i,a,b) for(R i=a;i>=b;i--)
 6 #define ms(i,a)    memset(a,i,sizeof(a))
 7 #define gc()       getchar()
 8 template<class T>void read(T &x){
 9     x=0; char c=0;
10     while (!isdigit(c)) c=gc();
11     while (isdigit(c)) x=x*10+(c^48),c=gc();
12 }
13 int const N=10000+3;
14 int dp[N],n,m,a[N],sum[N];
15 int main(){
16     read(n); read(m);
17     rep(i,1,n) read(a[i]),sum[i]=sum[i-1]+a[i];
18     rep(i,1,n) {
19         dp[i]=dp[i-1];
20         rep(j,1,min(i/2,m)) dp[i]=max(dp[i],dp[i-2*j]+sum[i-j]-sum[i-2*j]);
21     }
22     cout<<dp[n]<<endl;
23     return 0;
24 }

View Code

转载于:https://www.cnblogs.com/ZJXXCN/p/10276834.html

bzoj1613 贝茜的晨练计划相关推荐

  1. bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划*

    bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划 题意: 贝茜进行N分钟的晨跑.在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息,如果贝茜选择在第i分钟内跑步,她可以在这 ...

  2. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划

    题目 1613: [Usaco2007 Jan]Running贝茜的晨练计划 Time Limit: 5 Sec  Memory Limit: 64 MB Description 奶牛们打算通过锻炼来 ...

  3. 【USACO】贝茜的晨练计划

    [USACO]贝茜的晨练计划 题目: 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= N <= 10,000)分钟的晨跑. 在每分钟的开始 ...

  4. 【u025】贝茜的晨练计划

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= ...

  5. JZOJ__Day 10:【普及模拟】【USACO】贝茜的晨练计划

    题目描述 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1 <= N <= 10,000)分钟的晨跑. 在每分钟的开始,贝茜会选择下一分钟是用来跑 ...

  6. 动态规划特训:贝茜的晨练(多状态转移)

    解题思路:影响最终跑多少米的是分钟和疲劳度这两个参量,很明显,这是一个二维dp的状态转化问题.dp[i][j]记录该状态下能跑的最大米数,其中i表示第i分钟,j表示疲劳度数.注意边界条件,设置dp[N ...

  7. bzoj 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题(DP)

    3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: ...

  8. [BZOJ1643][Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪

    1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: ...

  9. bzoj 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪(DP)

    1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪 Time Limit: 5 Sec  Memory Limit: 64 MB Submit:  ...

最新文章

  1. jeecms 2012 源码分析(2) 前台栏目页静态化分析
  2. HTTP层 —— Session
  3. Linux之提高Nginx的安全性:受限server_tokens /user_agents/buffer_size/连接数/请求方法/外链/不用模块 使用日志/TLS/HTTPS/升级
  4. Swoole跨域问题解决
  5. SCOM 如何监控生产环境中的LinuxUnix机器
  6. 几个OpenSource的源代码管理软件
  7. 如何在 ASP.Net Core 中使用 MiniProfiler
  8. diff命令两个服务器文件,linux 比较两个文件夹不同 (diff命令, md5列表)
  9. 小狗扫地机器人与石头_石头扫地机器人 T7:使用一周后的真实测评报告
  10. 清理SQL Server中的旧代码和未使用的对象
  11. 深入理解Python对象(源码深度解析)
  12. springboot批量更新实体_springboot使用druid批量更新报错
  13. 你家的猫也能来段东北话了:快手快影一键「智能配音」,三种方言随意换,还能配出《舌尖》风...
  14. 第三代酷睿i3处理器_【分享】Intel酷睿Core历代CPU插槽类型、架构、及常用主板大全...
  15. 【vue 导出功能】file-saver插件
  16. word2010使用记录
  17. 软件测试 - 测试基础知识
  18. Android系统解除USER版本无法进入Recovery模式限制
  19. 面试题45. 把数组排成最小的数
  20. oracle unwrap 截断,对Oracle unwrap工具的介绍

热门文章

  1. python机器学习(一)
  2. 传感器实训心得体会_关于实训的心得体会
  3. php实训制作登录界面总结,php实训报告心得体会
  4. linux 系统迁移到固态硬盘,在Linux系统中将SSD当块设备缓存的方法
  5. (批处理学习)句柄备份——个人见解之“>nul 3>nul“——记录学习过程(详细)
  6. Linux结构体变量报错,C语言中的结构体
  7. 单体测试使用Assert.assertThat(expected,Matcher matcher)来对比结果和预期
  8. 未解决:自行打包cpio格式的Ramdisk,与编译成功生成的kernel.bin,deviceTree一起打包成image.ub,不能正常启动kernel的问题???
  9. docker容器创建的流程详解
  10. 【Linux】《Linux命令行与shell脚本编程大全》阅读笔记