[Vijos1149]驾车旅游解题报告

来源:互联网 发布:新房装修必知 编辑:程序博客网 时间:2024/05/04 09:12

这道题最关键的地方就是对除非汽车无法用油箱里的汽油达到下一个加油站或目的地,在油箱里还有不少于最大容量一半的汽油时,驾驶员从不在加油站停下来。这句话的翻译,我一开始想错了,真正清晰的等价叙述应为:

驾驶员可以在油站停下来,当当前油箱里的汽油小于最大容量的二分之一或汽车无法用油箱里的汽油达到下一个加油站或目的地;

驾驶员可以不在油站停下来,当汽车可以用当前油箱里的汽油达到下一个加油站或目的地。

#include<iostream>using namespace std;#include<cstdio>#include<cmath>#include<algorithm>#include<cstring>float minx[51],ans=0x7fffffff,v,S;int n;struct S{float x,p;inline bool operator < (S a) const {return x<a.x;}}a[51];inline void dfs(int x,float V,float now){if(x==n){ans=min(ans,now);return;}if(now+max((float)0,((a[n].x-a[x].x)/S-V))*minx[x]>=ans)return;if(V<v/2||V*S<a[x+1].x-a[x].x)dfs(x+1,v-(a[x+1].x-a[x].x)/S,now+(v-V)*a[x].p+20);if(V*S>=a[x+1].x-a[x].x)dfs(x+1,V-(a[x+1].x-a[x].x)/S,now);}int main(){float ww;scanf("%f%f%f%f%d",&a[50].x,&v,&S,&ww,&n);a[n].x=a[50].x;int i;for(i=0;i<n;++i)scanf("%f%f",&a[i].x,&a[i].p);sort(a,a+n);minx[n-1]=a[i].p;for(i=n-2;i>-1;--i)minx[i]=min(minx[i+1],a[i].p);dfs(0,v-a[0].x/S,ww);printf("%.1f",ans);}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米4开机黑屏怎么办 小米电脑死机了怎么办 小米8手机死机怎么办 oppa7开不了机怎么办 oppo手机wlan打不开怎么办 三星s6进水黑屏怎么办 银行卡不支持快捷支付怎么办 路由器忘记管理员密码怎么办 云付没有推荐人怎么办 牛呗审核不通过怎么办 华硕笔记本很卡怎么办 淘宝换货没有货怎么办 用手机怎么办网银 手机销号支付宝怎么办 黑狗狗毛发红怎么办 裤子洗掉色了怎么办 没买快递收到怎么办 淘宝介入卖家不举证怎么办 买家拒收快递货怎么办 买家到付拒收怎么办 买家发顺丰到付又拒收怎么办 到付快递骗局怎么办 一年级学生上课走神怎么办 网购出现质量问题怎么办 小米分期没额度怎么办 小米预约错了怎么办 小米商城缺货要怎么办 LG显示器不满屏怎么办 网页页面放大了怎么办 JSP样式失效了怎么办? 客户故意不结账怎么办 面对刁难的顾客怎么办 万家乐燃气灶具不好打火怎么办 垃圾处理器堵了怎么办 银赫入伍金俊秀怎么办 孕妇被蜈蚣咬了怎么办 苹果id密码忘了怎么办 苹果6触屏失灵怎么办 阴道里长尖锐疣怎么办 毛笔笔尖泡弯了怎么办 长智齿了很疼怎么办