算法训练 旅行家的预算
2020-02-23 16:01:10来源:博客园 阅读 ()
算法训练 旅行家的预算
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。 输入格式 第一行为4个实数D1、C、D2、P与一个非负整数N;接下来N行,每行两个实数Di、Pi。 输出格式 如果可以到达目的地,输出一个实数(四舍五入至小数点后两位),表示最小费用;否则输出“No Solution”(不含引号)。 样例输入 275.6 11.9 27.4 2.8 2
102.0 2.9
220.0 2.2 样例输出 26.95 采用贪心法,每次都加满油,到地方如果更便宜,则将剩下的油换为便宜的油 代码:
1 #include <iostream> 2 #include <vector> 3 #include <iomanip> 4 using namespace std; 5 //zq 6 int main() { 7 double D1,C,D2,P,sum=0,tank; 8 int N,flag=1; 9 vector<double>Di,Pi; 10 cin>>D1>>C>>D2>>P>>N; 11 tank=C; 12 Di.push_back(0); 13 Pi.push_back(P); 14 for (int i=1; i<=N; ++i) { 15 double tmpD,tmpP; 16 cin>>tmpD>>tmpP; 17 Di.push_back(tmpD); 18 Pi.push_back(tmpP); 19 } 20 Di.push_back(D1); 21 Pi.push_back(0); 22 double p0 = Pi[0]; 23 sum += tank * Pi[0]; 24 double distance,need; 25 for (int i=1; i<N+2; ++i) { 26 distance = Di[i] - Di[i-1]; 27 need = distance /D2; 28 if (tank * D2 >= distance) { 29 tank -= need; 30 if (Pi[i] < p0) { 31 sum -= tank * p0; 32 tank = C; 33 sum += tank * Pi[i]; 34 p0 = Pi[i]; 35 } else{ 36 if (tank * D2 < (Di[i+1] - Di[i])) { 37 sum += (C-tank)*Pi[i]; 38 tank = C; 39 p0 = Pi[i]; 40 } 41 } 42 } else{ 43 cout<<"No Solution"<<endl; 44 flag = 0; 45 break; 46 } 47 } 48 if (flag!=0) { 49 cout<<fixed<<setprecision(2)<<sum; 50 } 51 return 0; 52 }
原文链接:https://www.cnblogs.com/zq-dmhy/p/12350448.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:十六进制转换
- C++ rand函数 2020-06-10
- OpenCV开发笔记(五十九):红胖子8分钟带你深入了解分水岭 2020-05-24
- 类欧几里得算法 2020-05-16
- 算法笔记刷题6 ( PAT 1003我要通过 ) 2020-05-08
- 无法正确通过算法题目都是哪些原因造成的? 2020-04-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash