题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1113

根据样例分析:

1、沙漠只有500公里或者更短,这时很简单,一次搞定。

2、沙漠600km,怎么办?我们需要保证的是:车到了离沙漠终点还有500km的地方,能恰恰加满油而且不

会有任何多余,方案其实很简单,从起点处加300升油,这300升油怎么用呢:开出100km,存下100

升,剩下100升刚好使得汽车返回起点。再在起点处加满500升油,这时就可以一路狂奔了,当然,要记得

开了100公里后,把存放在那儿的100升油也加上。(这时在起点的油一共是500+300)

3、我们先看看2的情况,符合这种情况的沙漠的最大距离是多少呢:答案是(500+500/3)公里。即在起

点准备1000升油,第一次装500升,跑了500/3公里后存放500/3升油,然后返回起点,这时车里的油也正

好用完,然后再在起点处装500升,跑了500/3公里后,把车内的(500-500/3)升油先放下,然后再一次

性把500升油装入车中。一路跑吧。

4。当沙漠的距离超过了(500+500/3)km(但又超过得不多)又当如何?这时我们可以把前面的(500+500/3)km看成一段整体,需要保证的是:在距离沙漠终点(500+500/3)km处恰恰有1000升油(由3的分析可知)。怎么来保证呢,我们假设沙漠的距离只比(500+500/3)多了1公里,因为汽车的容量是500升,所以1000升油最少从起点装3次油才能倒满(具体情况你可以自己想想)。除了3次装油,还有两次折回,所以往返正好有5次,这5次的能保证的距离是500/5,所以这时我们又把沙漠的距离延伸到了:(500+500/3+500/5),起点应该储备1500升油。

5。当沙漠的距离超过了(500+500/3+500/5)公里,我们要保证的是在距离沙漠终点(500+500/3+500/5)公里的

地方有1500升油。。。。。。。。

一路往下,总有某一个值使得dis =(500+500/3+500/5+..+500/(2k-1))<1000,但是
(500+500/3+500/5+..+500/2k-1+500/(2k+1))>1000,应该在起点准备多少油呢?这时多了一小段出来

,很像情形2的分析了,说白了,在起点准备的油应当是:(1000 -dis)*往返次数 + k*500。

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#define LL long long
#define inf 1<<30
#define mod 1000000007
using namespace std;
int main()
{
int k;
double n,m;
scanf("%lf%lf",&n,&m);
double sum=;
for(k=;sum+m/(*k-)<n;k++)sum+=m/(*k-);
double ans=(k-)*m+(*k-)*(n-sum);
printf("%.0f",ceil(ans));
}

URAL1113(数学)的更多相关文章

  1. 数学思想:为何我们把 x²读作x平方

    要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...

  2. 速算1/Sqrt(x)背后的数学原理

    概述 平方根倒数速算法,是用于快速计算1/Sqrt(x)的值的一种算法,在这里x需取符合IEEE 754标准格式的32位正浮点数.让我们先来看这段代码: float Q_rsqrt( float nu ...

  3. MarkDown+LaTex 数学内容编辑样例收集

    $\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...

  4. 深度学习笔记——PCA原理与数学推倒详解

    PCA目的:这里举个例子,如果假设我有m个点,{x(1),...,x(m)},那么我要将它们存在我的内存中,或者要对着m个点进行一次机器学习,但是这m个点的维度太大了,如果要进行机器学习的话参数太多, ...

  5. Sql Server函数全解<二>数学函数

    阅读目录 1.绝对值函数ABS(x)和返回圆周率的函数PI() 2.平方根函数SQRT(x) 3.获取随机函数的函数RAND()和RAND(x) 4.四舍五入函数ROUND(x,y) 5.符号函数SI ...

  6. *HDU 2451 数学

    Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  7. 如何解决Maple的应用在数学中

    对任意数学和技术学科的研究员.教师和学生而言,Maple是一个必备的工具.通过Maple,教师将复杂数学问题注入生命,学生的精力集中在概念理解上而不是如何使用工具上,研究员可以开发更复杂的算法或模型. ...

  8. 如何让Maple中的数学引擎进入你的桌面应用程序和网站

    MapleNET数学服务套件将Maple 2015强大的数学引擎引入您的应用程序和网站.使用MapleNET,您可以添加数学计算和可视化功能到网页和桌面程序中,通过互联网/局域网分享“活”的Maple ...

  9. 【原创】开源Math.NET基础数学类库使用(07)常用的数学物理常数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 1.前 ...

随机推荐

  1. HTML&JS笔记(1)

    canvas基本绘图 <!DOCTYPE html> <html> <body> <meta charset="utf-8"> &l ...

  2. 怎样查看apk须要支持的Android版本号

    假设有一个apk,须要知道他最低安装支持的Android版本号是什么,应该怎样查看呢? 直接将apk后缀名改为rar或者zip,拉出AndroidManifest.xml?不行,AndroidMani ...

  3. ajax后台处理返回json值

    public ActionForward xsearch(ActionMapping mapping, ActionForm form, HttpServletRequest request, Htt ...

  4. android程序中使用命令行及获得命令行执行后的内容

    在开发android项目中,需要在程序中使用命令行执行,获得命令行执行后的结果并做处理. 下面是自己写的一个小例子,供以后参考使用: public String android_command(){ ...

  5. Delphi图像处理 -- 最小值

    阅读提示:     <Delphi图像处理>系列以效率为侧重点,一般代码为PASCAL,核心代码采用BASM.     <C++图像处理>系列以代码清晰,可读性为主,全部使用C ...

  6. reduce个数究竟和哪些因素有关

    reduce的数目究竟和哪些因素有关 1.我们知道map的数量和文件数.文件大小.块大小.以及split大小有关,而reduce的数量跟哪些因素有关呢?  设置mapred.tasktracker.r ...

  7. ios点击产生波纹效果

    ios点击产生波纹效果 by 伍雪颖 - (void)viewDidLoad { [super viewDidLoad]; RippleView = [[UIView alloc] initWithF ...

  8. ABP分层设计

    ABP分层设计 一.为什么要分层 分层架构是所有架构的鼻祖,分层的作用就是隔离,不过,我们有时候有个误解,就是把层和程序集对应起来,就比如简单三层架构中,在你的解决方案中,一般会有三个程序集项目:XX ...

  9. c++ virturn function -- 虚函数

    c++ virturn function -- 虚函数 pure irtual function  -- 纯虚函数   先看例子 #include <iostream> using nam ...

  10. Webserver管理系列:5、利用MSConfig排查木马

    木马程序最喜欢去的地方有两个一个是服务里面,一个是启动里面.利用msconfig我们能够高速的找到可疑程序. 在命令行中输入msconfig回车 选择服务项: 这里面的服务有非常多我们非常难排查,我告 ...