【u238】暴力摩托
Time Limit: 1 second
Memory Limit: 64 MB
【问题描述】
晚会上大家在玩一款“暴力摩托”的游戏,它拥有非常逼真的画面和音响效果! 当然了,车子总是要加油的咯,已知赛道长S公里(S≤10000整数,且为10的倍数),赛车的油耗Q=1,即1公里路耗1个单位的油。Q不变,赛车的油箱为无穷大,同时在沿途的任何地方都可以加油。 约定,每次加油的数量为整数,且为10的倍数,赛车的速度与赛车加油后的总油量有关。其关系如下表列出:
加油量 车速(公里/小时)
≤10 100
(10,20 ] 90
(20,30 ] 80
(30,40 ] 75
(40,+∞) 70
同时,汽车每加油一次需要耗费T分钟(T<=100不论加油多少,开始时的加油不计时间)。
当S,T给出之后,选择一个最优的加油方案。使汽车以最少时间跑完全程。
例如:当S=40,T=6(分钟),加油的方案有许多种,列出一些:
1)起点加油40,用时40/75≈0.53小时
2)起点加油20,中途加20,用时20/90+20/90+6/60(化为小时)≈ 0.54 小时
【输入格式】
一行,为两个整数S、T。
【输出格式】
输出一行,为最少用时(保留二位小数)
【数据规模】
Sample Input1
40 6
Sample Output1
0.53
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=u238
【题解】
这里先思考;
有没有可能在中间加一次油之后,
油还没耗尽继续加油?
加油?
要加到什么地步?
①如果和当前速度一样;
那么就等耗尽了再加就好.
②如果和当前速度相比更慢了
当前这段你先用高速开完再说啊
③如果和当前速度相比更快了
不行,不可能,因为速度是按照一次加油后的总油量来决定的
你不可能从20->6之后,加油变成100km/h
题意不允许;
综上,也就是说每一个位置决策完之后等到油耗尽之后再决策;
记忆化搜索;
设f[x]表示到第x位置花的最少时间;
写个dfs就好;
但是优先往远处走,这样f的约束性更强;
【完整代码】
#include <cstdio>
#include <algorithm>
#include <cmath>
#define rei(x) scanf("%d",&x)
#define rep1(i,x,y) for (int i = x;i <= y;i++)
#define rep2(i,x,y) for (int i = x;i >= y;i--)
using namespace std;
const int N = 1000+100;
const double tx[5] = {0,100.0,90.0,80.0,75.0};
int s,T;
double f[N];
void pre()
{
rep1(i,0,1000)
f[i] = 21e8;
}
void in()
{
rei(s),rei(T);
s/=10;
}
void dfs(int x,double t)
{
if (t>=f[x]) return;
f[x] = t;
if (x==s)
return;
double key = double(T);
if (x==0) key = 0;
rep2(j,4,1)
{
int r = x+j;
if (r>s) r = s;
dfs(r,t+double(r-x)*10/tx[j]+key/60.0);
}
dfs(s,t+key/60.0+double(s-x)*10/70.0);
}
void o()
{
printf("%.2f\n",f[s]);
}
int main()
{
pre();//checked
in();//checked
dfs(0,0);//checked
o();//checked
return 0;
}
【u238】暴力摩托的更多相关文章
- day15-面向对象基础(二)
今天整理类的组合以及类的三大特性 1.类的组合 2.类的继承 3.类的封装 4.类的多态 开始今日份整理 1.类的组合 类与类之间,并不是独立的,很多的时候在正常使用的时候都是类与类之间互相调用,所以 ...
- 2d游戏和 3d游戏的区别
2D游戏和3D游戏的主要区别 一.总结 一句话总结:2D中的单位就是贴图,3D中的单位还有高 1. 3D 和 2D 游戏的区别主要体现在呈现画面和文件体积上: 2. 借助 3D 引擎可以提升 2D 游 ...
- 14_Python语法示例(面向对象)
1.自己写一个Student类,此类的对象有属性name, age, score, 用来保存学生的姓名,年龄,成绩 # 1)写一个函数input_student读入n个学生的信息,用对象来存储这些信息 ...
- zone.js - 暴力之美
在ng2的开发过程中,Angular团队为我们带来了一个新的库 – zone.js.zone.js的设计灵感来源于Dart语言,它描述JavaScript执行过程的上下文,可以在异步任务之间进行持久性 ...
- [bzoj3123][sdoi2013森林] (树上主席树+lca+并查集启发式合并+暴力重构森林)
Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...
- HDU 5944 Fxx and string(暴力/枚举)
传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Othe ...
- 1250 Super Fast Fourier Transform(湘潭邀请赛 暴力 思维)
湘潭邀请赛的一题,名字叫"超级FFT"最终暴力就行,还是思维不够灵活,要吸取教训. 由于每组数据总量只有1e5这个级别,和不超过1e6,故先预处理再暴力即可. #include&l ...
- fragment+viepager 的简单暴力的切换方式
这里是自定义了一个方法来获取viewpager private static ViewPager viewPager; public static ViewPager getMyViewPager() ...
- ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力
Gym 101047M Removing coins in Kem Kadrãn Time Limit:2000MS Memory Limit:65536KB 64bit IO Fo ...
随机推荐
- C#中时间差的计算
/// <summary> /// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. /// </summary> /// <param name=&q ...
- ubuntu上安装notepadpp
Notepad++是一套非常有特色的自由软件的纯文字编辑器(许可证:GPL).有完整的中文化接口及支持多国语言编写的功能(UTF8 技术).它的功能比 Windows 中的 Notepad(记事本)强 ...
- 【JZOJ4899】【NOIP2016提高A组集训第17场11.16】雪之国度
题目描述 雪之国度有N座城市,依次编号为1到N,又有M条道路连接了其中的城市,每一条道路都连接了不同的2个城市,任何两座不同的城市之间可能不止一条道路.雪之女王赋予了每一座城市不同的能量,其中第i座城 ...
- Python编码---转自金角大王
本节内容 编码回顾 编码转换 Python的bytes类型 编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答 这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有 ...
- 跨域知识(一)——CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...
- Laravel 单设备登录
https://laravel-china.org/articles/10605/laravel-single-device-login 前几天在 laracasts 看了laravel5.6的新功能 ...
- 【Mysql的那些事】Django数据库配置
1:安装与配置 1:pip install PyMySQL(或者直接使用Pycharm的setting,点击添加PyMySQL) 2:在Django的工程同名子目录的__init__.py文件中添加如 ...
- [已转移]JavaScript事件---DOM事件流
该文章已转移到博客:https://cynthia0329.github.io/ 事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件 这个传播过程即DOM事件流. ...
- [Linux]环境配置之jdk的安装 标签: jdk服务器linux 2016-08-07 22:18 502人阅读 评论(21)
这两天服务器崩了,所以需要重新配置环境,然后从头到尾配置了一遍,现在记录总结一下自己这两天的工作,首先是jdk的配置! 很多软件,需要jdk为基础,所以第一个装的就是jdk. 第一步,拷贝文件 首先将 ...
- MUI - 实现关闭除指定页面外的其他所有页面的功能
实现关闭除指定页面外的其他所有页面的功能 比如在实现注销登录功能时,要保证旧有的webweiw或缓存不影响新用户的操作,就需要在跳转到登陆页面前关闭其他页面. http://www.cnblogs.c ...