1093 骆驼和香蕉
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

 收藏
 关注

一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距离 > K的地方。现在给出N和K,问骆驼走到目的地最少需要消耗多少香蕉。
Input
2个整数N K,中间用空格分隔。(1 <= N, K <= 10000,N <= 5 * K)
Output
输出最少需要消耗多少根香蕉。
Input示例
1000 500
Output示例
3837

题解:

对于n<k,香蕉可以一步送到这个就不用说了,当n>k时香蕉不可能一步送到,那怎么办?就需要一个“中转

站”来储存香蕉,那么中转站的位置该怎么选?

------很显然,我们可以将问题转化一下:如何将k根香蕉运送到a点?其中a==n-k,我们假设a比较小以至于刚

刚只需要一个补给点a且只来回一次,这样在路途中总消耗的香蕉为3*a个,因为最终a点要有k根香蕉,且骆驼每次

运输量至多为k,所以有k+3*a<=2*k → a<=k/3,(其中k+3*a便是答案)显然当a<=k/3刚好满足假设中的要求,

也就是说n>k+k/3时就需要2个中转站且来回两次了

------如果n>k+k/3怎么办?可以将问题继续转化,如何将k+3*(k/3)(==2*k)根香蕉运送到b点?其中b==n-k-k/3!

同样假设只需要两个补给点a和b且只来回两次,根据上面的套路仍可列方程2*k+5*b<=3*k → b<=k/5 (其中2*k+5*b

便是答案)

……两个中转点还不够!继续转化:如何将2*k+5*(b/5)(==3*k)根香蕉运送到c点? 同理有方程

3*k+7*c<=4*k(其中3*k+7*b便是答案)

……

如果一直这样循环下去,则说明不可能送到!否则总有解,答案便是x*k+(2*x+1)*pi,其中pi表示第pi个中转站

与起点间的距离

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(void)
{double n, k, tis, ans;scanf("%lf%lf", &n, &k);ans = 0, tis = 1;while(n-k/tis>=0)       /*枚举需要中转的次数,k/tis为每多一个中转站可以多运送的距离!*/{n -= k/tis;ans += k;tis += 2;}if(n>0)ans += n*tis;printf("%.0f\n", ceil(ans));return 0;
}

51nod-1093:骆驼和香蕉相关推荐

  1. 香蕉 ftp_奇怪的香蕉

    香蕉 ftp Strange Banana is an automatic page layout generator that uses CSS and XHTML. Being computer ...

  2. 58页PPT详解,华为公司全面预算管理与实践

    欢迎关注肉眼品世界,围观一个华为人的,白手起家突破世俗之路! 计划.预算是实现目标的基石: 财务管理是企业管理的核心 预算管理是财务管理的核心 很多企业失败的症结就是只有辉煌的.抽象的目标,缺乏具体的 ...

  3. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  4. 【仿去哪儿】骆驼动画加载

    简单的实现正在加载的动画,比较粗糙,没有实现后面的旋转地球.图一为去哪儿的截图,图二为本文实现的效果 图1 图2 一.新建LoadView继承自UIView,声明几个方法,这样在项目需要用到时,直接调 ...

  5. [Django](1093, quot;You can#39;t specify target table #39;fee_details_invoices#39; for update in...

    dele_id = Fee_details_invoices.objects.filter(fee_detail_id__in=fee_id_list, return_type='2').values ...

  6. 题目 1093:【蓝桥杯】【入门题】字符逆序

    题目 1093:字符逆序 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 64MB 1. 题目描述 将一个字符串str的 ...

  7. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  8. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  9. 香蕉派 banana pi github 最新Linux 代码升级到kernel 4.2.

    2019独角兽企业重金招聘Python工程师标准>>> 香蕉派 banana pi github 最新Linux 代码升级到kernel 4.2. https://github.co ...

最新文章

  1. 残差神经网络_什么是残差——一文让你读懂GBDT(梯度提升树)-和-Resnet-(残差网络)的原理...
  2. 文巾解题 面试题 01.06. 字符串压缩
  3. c3074 无法使用带圆括号的_如何选择路面裂缝贴缝带?
  4. 7-10 逆波兰表达式求值 (20 分)(c语言)(数据结构)
  5. 携号转网,用户最关心的还是网络质量
  6. mysql非必现数据插不进去_MySQL必知必会:数据插入(Insert)
  7. 万人攻防大战:淘宝优惠活动,沦为黑产盛宴
  8. 老男孩python分享视频
  9. 2018年python工作好找吗-2018年Python发展前景如何?Python就业有哪些方向?
  10. 为什么学习线性代数?
  11. PID算法的原理和公式
  12. WPS中word转pdf文件时给pdf文件增加目录
  13. 如何设计并实施CRM与ERP的整合方案?
  14. 【MATLAB】求极限
  15. 20190904_chip-seq/ ATAC-seq/DAP-seq 原理理解
  16. 【JAVA】-- 黄金矿工小游戏(一)(实现思路+每步代码)
  17. Finished with error: ProcessException: ProcessXXXXXXXexited abnormally 的解决方法
  18. 删除U盘中的System Volume Information 文件夹的方法
  19. 华为虚拟服务器 vrm,安装虚拟化管理服务器-VRM
  20. js获取URL参数以及Json对象常用方法

热门文章

  1. 自学python好找工作么-Python就业前景如何?培训后好找工作吗?
  2. python基础知识-Python语言基础知识总结
  3. 聚焦2016:关于语音识别、图像识别及大数据
  4. 未来,语音识别可能应用于哪些商业化场景?
  5. 怎么让某段css代码只在Chrome 火狐 edge 浏览器生效
  6. php禁用错误提示,php开启与关闭错误提示详解
  7. DOM获取元素、事件基础、操作元素、节点操作
  8. linux代码实现进程监控,linux进程监控shell脚本代码
  9. java jpms_JDK9的新特性:JPMS模块化
  10. 【java笔记】IO流(1):IO流概述,字节输出/输入流读写文件