1051: 旅行家的预算

时间限制: 1 Sec  内存限制: 128 MB
提交: 27  解决: 7
[提交][状态][讨论版]

题目描述

一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。

输入

输出

样例输入

275.6 11.9 27.4 2.8 2
102.0 2.9
220.0 2.2

样例输出

26.95

/*
虽然做了3小时,交了7,8次才做出来这道题,但是很高兴.
时间复杂度也是O(n).
*/
#include<iostream>
using namespace std;
double d[1000], box, price[1000], per;
int n;//加油站的数量
double now;//现在的油量
double money;//现在已经花了多少钱
void go(int station){if (station == n + 1)return;int i;int nextStation = station + 1;//默认去下一站double will = box;//默认加满油for (i = station+1; i <= n+1&&d[i]-d[station]<=per*box; i++)if ( price[i]<price[station]){will = (d[i] - d[station]) / per;nextStation = i;break;}//如果可以发现更便宜的油站,那就冲过去.if (will>now){//如果需要加油的话,就要花钱money += (will - now)*price[station];will -= (d[nextStation] - d[station]) / per;now = will;}else//如果不需要花钱的话now -= (d[nextStation] - d[station]) / per;go(nextStation);
}
int main(){//freopen("in.txt", "r", stdin);double temp;cin >> temp>> box >> per >> price[0] >> n;d[0] = 0; d[n + 1] = temp; price[n + 1] = 0;money = 0;int i;for (i = 1; i <= n; i++)cin >> d[i] >> price[i];for (i = 0; i <= n;i++)if (d[i + 1] - d[i] > per*box){cout << "No Solution";return 0;}go(0);printf("%.2lf", money);return 0;
}

转载于:https://www.cnblogs.com/weiyinfu/p/5013905.html

东大OJ-1051-旅行家的预算相关推荐

  1. java 旅行家的预算_洛谷 P1016 旅行家的预算 Java解法

    洛谷 P1016 旅行家的预算 Java解法 洛谷 P1016 旅行家的预算 Java解法 package com.two; import java.util.Scanner; public clas ...

  2. 贪心算法解旅行家的预算问题

    贪心算法解旅行家的预算问题 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2 ...

  3. noip1999 旅行家的预算 (贪心)

    A1122. 旅行家的预算 时间限制:1.0s   内存限制:256.0MB   总提交次数:854   AC次数:169   平均分:54.45 将本题分享到:        查看未格式化的试题   ...

  4. 蓝桥杯:旅行家的预算 贪心解法

    蓝桥杯:旅行家的预算 贪心解法 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距 ...

  5. 蓝桥杯题目练习(旅行家的预算)

    算法训练VIP 旅行家的预算 原题链接:旅行家的预算 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市 到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单 ...

  6. 贪心算法——旅行家的预算(NOIP1999)

    问题描述: 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和 ...

  7. 旅行家的预算(贪心)

    旅行家的预算 来源: 1999年NOIP全国联赛普及组NOIP全国联赛提高组 题目描述: 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽 ...

  8. #NOIP1999#旅行家的预算

    旅行家的预算 时间限制: 1 Sec  内存限制: 64 MB 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C( ...

  9. 基于python程序利用贪心算法解决旅行家的预算问题

    程序已通过检测:  https://www.dotcpp.com/oj/problem1640.html 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定 ...

  10. 旅行家的预算[贪心]

    题目 Problem description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶 ...

最新文章

  1. 使用JCIFS获取远程共享文件
  2. java多线程(3)Thread的静态方法
  3. at命令不生效 linux_帮你精通Linux:简约却不简单的ls命令
  4. PHP封装curd,CURD · TookPHP开发手册 · 看云
  5. 没用过.gitignore还敢自称高级开发?
  6. Fiddler如何查找登陆的可用cookie用于其他请求?方式一
  7. win10mongodb链接_Windows 10 安装 Mongodb
  8. Python的if判断与while循环
  9. Bailian2946 玩游戏【模拟】
  10. (4)建立一个标准尺寸的平面,并对其进行着色贴图、拉伸一定的厚度
  11. poj3616(Milking Time)
  12. 在 Windows 容器中使用 gMSA
  13. 源码文件编码问题,导致编译的程序运行错误
  14. Arduino:光立方的开发与实现
  15. 思科 Cisco CCNA 题库、
  16. Mugeda(木疙瘩)H5案例课—换装小游戏-岑远科-专题视频课程
  17. JDR与JRE的区别
  18. 计算机保护重要文件的方法,重要文件应该如何保护?
  19. 独立元器件搭建的逻辑门电路和仿真(一)
  20. mysql根据经纬度查询附件门店

热门文章

  1. windwos开机自启动脚本
  2. 洛谷P1258 小车问题(题解)
  3. Scrapy框架(持久化,去重,深度控制,cookie)
  4. C和指针 第五章 位数组
  5. 获取元素在文档上的正确坐标
  6. 用于.NET环境的时间测试
  7. 8月的最后一天,随意漫笔
  8. [转]cookie、sesstion、localstorage、sesstionstorage的使用和区别
  9. Hive的10种常用优化总结,再也不怕MapReduce分配不均了
  10. 财务报表“难看”,怎么解决?