【贪心策略】USACO 越野跑
问题 H: 越野跑【贪心策略】
【题面】
为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:奶牛独自进山的时间不得超过M秒(1< =M< =10,000,000)。
整条山路被贝茜划分成T个长度相同的小段(1< = T< = 100,000),并且,贝茜用S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示 第i个小段是上坡、平地,或是下坡。
贝茜要花U秒(1< =U< = 100)才能跑完一段上坡路,跑完一段平地的耗时是 F秒(1 < = F < = 100),跑完一段下坡路要花D秒(1 < = D < = 100)。注意,沿山路原路返回的时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成了上坡路。
贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多远。
输入
第1行: 5个用空格隔开的整数:M,T,U,F,以及D
第2..T+1行: 第i+1行为1个字母S_i,描述了第i段山路的路况
输出
输出1个整数,为贝茜在按时回到农场的前提下,最多能跑到多远
样例输入
13 5 3 2 1
u
f
u
d
f
样例输出
3
提示
贝茜跑步的最大耗时为13秒(这么短...),她跑步的山路一共被划成5段。贝茜跑完一段上坡路的耗时为3秒,平地为2秒,下坡路为1秒。山路各段的走向如下图所示:
/ _ / \ _(让我改一下,真的看不下去误导新手!)
贝茜跑完山路的前3段,然后返回,总耗时为3 + 2 + 3 + 1 + 2 + 1 = 12秒,只比她能在外面呆的时限少1秒。如果她跑得更远,就无法按时回到农场。
【题解】
先对样例画一张草图,如右图:
用画图画的,质量不是很好但足以说明问题
已经清楚的表示了这一整幅图,
我们知道,奶牛的出发点一定是在牧场
但是题目没有说牧场在哪里,坑了一会,
最后发现,牧场就是编号为1的点。
容易发现,奶牛在牧场的时间和为0+0=0
在这里第一个加数表示去的时间,
第二个加数表示回的时间,下面也是如此;
简略的记为i=1,time[1]=0+0=0;
同理可求 i=2,time[2]=3+1=4 i=3,time[3]=5+3=8 i=4,time[4]=8+4=12
i=5,time[5]=9+7=16 i=6,time[6]=11+9=20
发现第一个加数是以去的时间累加的,第二个加数是以回来的时间累加的。
算法就出来了!
用tot1[i](1<=i<=t+1)表示第i个点去的时间;
tot2[i](1<=i<=t+1)表示第i个点回的时间;
time[i]=tot1[i]+tot2[i]; 然后扫一遍出即可
但是在比较输出的时候我们通常会采用
for i:=1 to t+1 do begin
time:=tot1[i]+tot2[i];
if time>m then
关键是方框里的输出语句怎么填?
填writeln(i-2)还是writeln(i-1)还是writeln(i) ?
注意了,我们一旦time>m 是表示这步路是不可以走的,需要减一,但是起点到起点不算走一步,所以又减一,一共减二,所以这里输出的是writeln(i-2)!
【贪心策略】USACO 越野跑的更多相关文章
- LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)
Best Time to Buy and Sell Stock Total Accepted: 14044 Total Submissions: 45572My Submissions Say you ...
- poj1328 Radar Installation(贪心 策略要选好)
https://vjudge.net/problem/POJ-1328 贪心策略选错了恐怕就完了吧.. 一开始单纯地把island排序,然后想从左到右不断更新,其实这是错的...因为空中是个圆弧. 后 ...
- Poj 1017 Packets(贪心策略)
一.题目大意: 一个工厂生产的产品用正方形的包裹打包,包裹有相同的高度h和1*1, 2*2, 3*3, 4*4, 5*5, 6*6的尺寸.这些产品经常以产品同样的高度h和6*6的尺寸包袱包装起来运送给 ...
- The - Modcrab——使用贪心策略
一.题目信息 The - Modcrab 简单翻译一下:Vova有生命值h1,每次攻击值为a1,每瓶药水恢复生命值c1;Modcrab有生命值h2,每次攻击值为a2.在每个关卡开始,Vova有两种选择 ...
- E - 不爱学习的lyb HDU - 1789(贪心策略)
众所周知lyb根本不学习.但是期末到了,平时不写作业的他现在有很多作业要做. CUC的老师很严格,每个老师都会给他一个DDL(deadline). 如果lyb在DDL后交作业,老师就会扣他的分. 现在 ...
- HDU-1052(贪心策略)
Tian Ji -- The Horse Racing Problem Description Here is a famous story in Chinese history. "Tha ...
- BZOJ 1029: [JSOI2007]建筑抢修【优先队列+贪心策略】
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MBSubmit: 4810 Solved: 2160[Submit][Statu ...
- 【贪心策略】渡河(river)
“假舟楫者,非能水也,而绝江河.”这句话说的是,借助渡船的人,不是会游水,却能横渡江河. 会游水的人反而不一定能顺利地横渡江河.由于江面风浪很大,他们必须潜泳渡河.这就必须用到氧气瓶.氧气瓶当然是出题 ...
- 51nod1673 树有几多愁 - 贪心策略 + 虚树 + 状压dp
传送门 题目大意: 给一颗重新编号,叶子节点的值定义为他到根节点编号的最小值,求所有叶子节点值的乘积的最大值. 题目分析: 为什么我觉得这道题最难的是贪心啊..首先要想到 在一条链上,深度大的编号要小 ...
随机推荐
- Redis Twemproxy
主从复制+哨兵解决了读性能和高可用问题,但没有解决写性能问题. Twemproxy将写请求分配到不同节点处理. Twemproxy是Twitter开源的一个redis和memcache代理服务器. 允 ...
- ASP.NET Core 3.0 实战:构建多版本 API 接口
第一次在博客写分享,请多多捧场,如有歧义请多多包含! 因为业务需求发展需要,所以API接口的变更升级是必不可少的事情,而原有的接口是不可能马上停止使用的.例如:Login接口为例,1.0版本之返回用户 ...
- ABAP error:CONVT_NO_NUMBER
今天写了个接口,传入数据到SAP,结果接收后在报表展示时直接报错. 检查后发现数据转换出错,接收到的数据格式混乱. 最后检查了所有地方发现,源系统传入的数据长度为9个字节,但是自己的接收程序,定义数据 ...
- 20155333 《网络对抗》 Exp5 MSF基础应用
20155333 <网络对抗> Exp5 MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:攻击手段,是能使攻击武器(payl ...
- 20155336虎光元 Exp1PC平台逆向破解及Bof基础实践
20155336Exp1 PC平台逆向破解(5)M 实践目标: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入 ...
- python3 str或bytes转换函数
str或bytes始终返回为str #!/usr/bin/env python # -*- coding: utf-8 -*- def to_str(bytes_or_str): if isinsta ...
- Security4:授予查看定义,执行SP和只读数据的权限
SQL Server数据库有完善的权限管理机制,对于存储过程,其权限分为查看定义,执行和修改,查看SP定义的权限是:VIEW DEFINITION ,执行存储过程的权限是:EXECUTE,修改SP的权 ...
- ElasticSearch查询 第二篇:文档更新
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- TensorFlow训练MNIST数据集(3) —— 卷积神经网络
前面两篇随笔实现的单层神经网络 和多层神经网络, 在MNIST测试集上的正确率分别约为90%和96%.在换用多层神经网络后,正确率已有很大的提升.这次将采用卷积神经网络继续进行测试. 1.模型基本结构 ...
- Visual Studio控制台程序输出窗口一闪而过的解决方法
转载大牛的博客,自己也遇到了类似的问题,解决方法很详细,也很管用 刚接触 Visual Studio的时候大多数人会写个Hello World的程序试一下,有的人会发现执行结束后输出窗口会一闪而过 ...