东大OJ-1051-旅行家的预算
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-旅行家的预算相关推荐
- java 旅行家的预算_洛谷 P1016 旅行家的预算 Java解法
洛谷 P1016 旅行家的预算 Java解法 洛谷 P1016 旅行家的预算 Java解法 package com.two; import java.util.Scanner; public clas ...
- 贪心算法解旅行家的预算问题
贪心算法解旅行家的预算问题 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2 ...
- noip1999 旅行家的预算 (贪心)
A1122. 旅行家的预算 时间限制:1.0s 内存限制:256.0MB 总提交次数:854 AC次数:169 平均分:54.45 将本题分享到: 查看未格式化的试题 ...
- 蓝桥杯:旅行家的预算 贪心解法
蓝桥杯:旅行家的预算 贪心解法 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距 ...
- 蓝桥杯题目练习(旅行家的预算)
算法训练VIP 旅行家的预算 原题链接:旅行家的预算 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市 到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单 ...
- 贪心算法——旅行家的预算(NOIP1999)
问题描述: 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和 ...
- 旅行家的预算(贪心)
旅行家的预算 来源: 1999年NOIP全国联赛普及组NOIP全国联赛提高组 题目描述: 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽 ...
- #NOIP1999#旅行家的预算
旅行家的预算 时间限制: 1 Sec 内存限制: 64 MB 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C( ...
- 基于python程序利用贪心算法解决旅行家的预算问题
程序已通过检测: https://www.dotcpp.com/oj/problem1640.html 问题描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定 ...
- 旅行家的预算[贪心]
题目 Problem description 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶 ...
最新文章
- 使用JCIFS获取远程共享文件
- java多线程(3)Thread的静态方法
- at命令不生效 linux_帮你精通Linux:简约却不简单的ls命令
- PHP封装curd,CURD · TookPHP开发手册 · 看云
- 没用过.gitignore还敢自称高级开发?
- Fiddler如何查找登陆的可用cookie用于其他请求?方式一
- win10mongodb链接_Windows 10 安装 Mongodb
- Python的if判断与while循环
- Bailian2946 玩游戏【模拟】
- (4)建立一个标准尺寸的平面,并对其进行着色贴图、拉伸一定的厚度
- poj3616(Milking Time)
- 在 Windows 容器中使用 gMSA
- 源码文件编码问题,导致编译的程序运行错误
- Arduino:光立方的开发与实现
- 思科 Cisco CCNA 题库、
- Mugeda(木疙瘩)H5案例课—换装小游戏-岑远科-专题视频课程
- JDR与JRE的区别
- 计算机保护重要文件的方法,重要文件应该如何保护?
- 独立元器件搭建的逻辑门电路和仿真(一)
- mysql根据经纬度查询附件门店