1128: 出租车费
时间限制: 1 Sec 内存限制: 32 MB
提交: 871 解决: 299
[提交][状态][讨论版][命题人:外部导入]

题目描述
某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里;接下来的4公里,每公里2元;之后每公里2.4元。行程的最后一段即使不到1公里,也当作1公里计费。
一个乘客可以根据行程公里数合理安排坐车方式来使自己的打车费最小。
例如,整个行程为16公里,乘客应该将行程分成长度相同的两部分,每部分花费18元,总共花费36元。如果坐出租车一次走完全程要花费37.2元。
现在给你整个行程的公里数,请你计算坐出租车的最小花费。

输入
输入包含多组测试数据。每组输入一个正整数n(n<10000000),表示整个行程的公里数。
当n=0时,输入结束。

输出
对于每组输入,输出最小花费。如果需要的话,保留一位小数。

样例输入
3
9
16
0
样例输出
10
20.4
36
分析:最小花费 考虑dp或贪心
从1往后写会发现 这个问题最小花费有区间规律 每8个里程会来个循环 最后余下的如果多于4 那么就重新打个车计费 如果少于4 就按照原2.4元车费计费比较省钱
所以这里就相当于直接取局部最优就等于全局最优了
整个规则适用于任意n情况 因为这个每四个2.4所省下的0.4元都可以被一个2.4-2 = 0.4 给平均掉
而后者的计费方式后四个都是每公里2元 跟一路2.4元下来有直观的差距
所以每个输入n都取决于相同的规则判断
故局部的规则最优就等于全局的最优
所以即便是最优问题 也可能从中找出规律 然后按照规律贪心解之。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<map>
#include<cmath>
#include<windows.h>
#include<algorithm>
#include<set>
const double eps = 1e-1;
using namespace std;
typedef long long ll;
int main(){int n;while(scanf("%d",&n),n){double sum=0;if(n<=4)puts("10");else{sum=(n/8)*18 + (n%8!=0?( n%8>4? (10 + (n%4) * 2): (2.4*(n%4==0?4:(n%4)))):0);if(sum-(int)sum>eps)printf("%.1f\n",sum);else printf("%d\n",(int)sum);}}return 0;
}

ps:这应该是我写过的最长的条件表达式了。。。

codeup 1128: 出租车费 贪心|找规律相关推荐

  1. 【codeup】1128 Problem B 出租车费

    题目描述 某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里:接下来的4公里,每公里2元:之后每公里2.4元.行程的最后一段即使不到1公里,也当作1公里计费. 一个乘客可以根据行程公里 ...

  2. 贪心入门——出租车费

    问题 B: 出租车费 时间限制: 1 Sec 内存限制: 32 MB 提交: 6 解决: 6 [提交][状态][讨论版] 题目描述 某市出租车计价规则如下:起步4公里10元,即使你的行程没超过4公里: ...

  3. 思维、找规律题目汇总

    转自:http://hi.baidu.com/liuzhe/blog/item/d2dc0fd10bf1eadb572c843d.html 感想: 1.还是数学有前途 2.猜想很重要 3.暴力打表可以 ...

  4. 2018.09.01 poj3071Football(概率dp+二进制找规律)

    传送门 概率dp简单题. 设f[i][j]表示前i轮j获胜的概率. 如果j,k能够刚好在第i轮相遇,找规律可以发现j,k满足: (j−1)>>(i−1)(j−1)>>(i−1) ...

  5. 某天没有数据能查出来0数量_用Excel对纽约市出租车费数据探索性分析

    一.引言 背景:在纽约,游客们往往把自由女神象.帝国大厦.中央公园等视为纽约的象征, 但穿梭在人海中的出租车也是纽约靓丽的人文景观之一, 是其流动的风景线, 在纽约公共文化中别具魅力.本篇文章利用之前 ...

  6. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  7. 数学/找规律/sgu 118 Digital root

    题意 定义f(n)为n各位数字之和,如果n是各位数,则n个数根是f(n),否则为f(n)的数根 现在给出n个Ai,求出A1*A2*-*AN + A1*A2*-*AN-1 + - + A1*A2 + A ...

  8. HDU 5703 Desert 水题 找规律

    HDU 5703 Desert 水题 找规律 已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现 ...

  9. Odd Grasshopper 奇偶找规律

    思路 : 首先根据输入的奇偶性分别找规律,发现与输入无关,都满足4个一循环的规律 如果次数n刚好是4的倍数,那么就是x0,否则,找到小于n中最靠近n的一个4的倍数,从它开始模拟到n,就是答案 #inc ...

最新文章

  1. COUNT(*)计算行数有哪些优化手段
  2. OGG-00446 ERROR: Could not find archived log
  3. Wijmo 2016年蓝图
  4. socket编程介绍
  5. 在struts2中push方法的使用_【干货】网版印刷中水墨使用注意事项及助剂使用方法...
  6. Docker 容器导出为镜像
  7. JavaRabbitmq笔记-Rabbitmq自定义头(Properties中的headers)
  8. NUC1157 To the Max【最大子段和+DP】
  9. namespace什么意思
  10. C语言错误类型中英文对照表
  11. c语言1076素数,九度OJ 1076:N的阶乘 题解
  12. 服务器电脑用哪个系统好,电脑系统哪个好用?电脑系统有几种版本
  13. Caffe学习笔记二 Extracting Features
  14. 重磅!python获取同步输出的桌面网易云音乐歌词(内存偏移获取)
  15. 第4章 点云的滤波与分类 4.1点云数据的过滤
  16. 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  17. 最好用的Ins客户端:Flume pro for mac
  18. SEO新手怎么做好网站关键词优化?
  19. 数据集处理(二)——Tiny-imagenet
  20. 考虑气流动力学的电-气综合能源系统可靠性评估

热门文章

  1. android深度探索 HAL及驱动开发 第八章
  2. 11. Android框架和工具之 Logger(调试代码)
  3. 怎样学好C++ ----高手的话
  4. 一段按页自动滚动文字或图片的Js代码
  5. 了解 yarn 、npm、nodejs
  6. Android 自定义Switch,仿微信开关键Switch
  7. hapi logs 日志保存代码片段
  8. ubuntu man手册完善
  9. 使用WINPE在硬盘安装WIN7系统
  10. Ant Design Pro 登录超时处理