1033. To Fill or Not to Fill (25)
来源:互联网 发布:sql server个人版安装 编辑:程序博客网 时间:2024/06/08 11:25
1033. To Fill or Not to Fill (25)
考察贪心
#include <iostream>#include <vector>#include <algorithm>#include <cstdio>using namespace std;struct node{ double pi; double di;};bool comp(const node &a,const node &b){ return a.di<b.di;}int main(){ double cmax,d,davg,n; vector<node> v; cin>>cmax>>d>>davg>>n; while(n--) { node temp; cin>>temp.pi>>temp.di; v.push_back(temp); } sort(v.begin(),v.end(),comp); double consum=0.0,curgas=0.0,curd=0.0; bool iscompelete=true; if(v[0].di!=0)//测试点2 { printf("The maximum travel distance = %.2lf\n",0.0); return 0; } for(auto it=v.begin();it!=v.end();) { auto p=it,next=it,less=it+1; double dis=0.0,addgas=0.0; while((*p).di-(*it).di<=cmax*davg&&p!=v.end()) { if((*p).pi<(*it).pi) { next=p;break; } if(p!=it) less=((*p).pi<(*less).pi)?p:less; ++p; } if(p==v.end()) { if(d-(*it).di>cmax*davg) { iscompelete=false; curd+=cmax*davg; break; } dis=d-(*it).di; consum+=(dis/davg-curgas)*(*it).pi; break; } if(next!=it) { dis=(*next).di-(*it).di; addgas=dis/davg-curgas; consum+=(*it).pi*addgas; curd=(*next).di; curgas=0.0; it=next; } else { dis=(*less).di-(*it).di; addgas=cmax-curgas; consum+=(*it).pi*addgas; curd=(*less).di; curgas=cmax-dis/davg; it=less; } } if(iscompelete) printf("%.2lf",consum); else printf("The maximum travel distance = %.2lf",curd); return 0;}
0 0
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- *1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill
- 1033. To Fill or Not to Fill (25)
- 1033. To Fill or Not to Fill (25)-PAT
- 【PAT】1033. To Fill or Not to Fill (25)
- 1033. To Fill or Not to Fill (25)
- PAT 1033. To Fill or Not to Fill (25)
- 1033. To Fill or Not to Fill (25)
- PAT 1033. To Fill or Not to Fill (25)
- PAT A 1033. To Fill or Not to Fill (25)
- PAT 1033. To Fill or Not to Fill (25)(贪心)
- 测试
- HDU2004 成绩转换
- php 函数变量作用域(传值与传应用)
- Action接受 jsp 的页面中表单数据
- winscp上传文件后变0KB
- 1033. To Fill or Not to Fill (25)
- 北京不相信眼泪
- JVM虚拟机内存区域概述
- DIY一个基于树莓派和Python的无人机视觉跟踪系统
- 使用ffmpeg来将mp4视频转换成gif格式图片
- eclipse中配置tomcat服务器详细流程
- 数据结构之队列
- Cube Stacking POJ - 1988 并查集
- 回炉考研的失败经历