版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/u011328934/article/details/26005267

题目链接:hdu 4803 Poor Warehouse Keeper

题目大意:有以个屏幕能够显示两个值,一个是数量x,一个是总价y。

有两种操作。一种是加一次总价,变成x,x+y;一种是加一个数量,这要的话总价也会对应加上一个的价钱。变成x+1。y+y/x。总价显示的为取整后的整数,小数部分忽略。

给定一个目标x。y。初始状态为1,1,求最少须要多少次能够目标状态,不能够达到的话输出-1.

解题思路:假设是加一次总价的话,单位价格就在变大;假设是加一次数量的话,单位价格是不变的。

总而言之。单位价格是仅仅会往上涨。而不会往下降的。

然后物品的数量也必须从1变成x,也就是说至少要加x-1次单位价格才干够。那么假设单位价格过大s,s∗(x−1)≥y+1肯定是不予许的。所以对于每个i(数量)来说,单位价格都有一个上限值。以保证说在添加数量的时候不会导致总价溢出。
设当前数量为i。临界总价为t。那么就有
y+1>t∗xi
t<(y+1)∗ix

    即。每次对于一个数量,尽量加总价,使得单位价格尽量大,而且保证在和面加数量时不会大于上限,由于单位价格大的话,加一次数量总价接近目标值的速度会更快。
#include <cstdio>
#include <cstring>
#include <cmath> const double eps = 1e-9; int main () {
double x, y; while (scanf("%lf%lf", &x, &y) == 2) { if (x > y) {
printf("-1\n");
continue;
} double k = (y+1-eps) / x;
int cnt = (int)x - 1; double tmp = 1;
for (int i = 1; i <= (int)x; i++) {
double t = i * k;
int u = (int)(t-tmp);
tmp += u; tmp = tmp * (i+1) / i;
cnt += u;
}
printf("%d\n", cnt);
}
return 0;
}

hdu 4803 Poor Warehouse Keeper(贪心+数学)的更多相关文章

  1. HDU 4803 Poor Warehouse Keeper(贪心)

    题目链接 题意 :屏幕可以显示两个值,一个是数量x,一个是总价y.有两种操作,一种是加一次总价,变成x,1+y:一种是加一个数量,这要的话总价也会相应加上一个的价钱,变成x+1,y+y/x.总价显示的 ...

  2. HDU 4803 Poor Warehouse Keeper (贪心+避开精度)

    555555,能避开精度还是避开精度吧,,,,我们是弱菜.. Poor Warehouse Keeper Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  3. HDU 4803 Poor Warehouse Keeper

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4803 解题报告:有一个记录器,一共有两个按钮,还有两行屏幕显示,第一行的屏幕显示的是数目,第二行的屏幕 ...

  4. HDU - 4803 - Poor Warehouse Keeper (思维)

    题意: 给出x,y两个值分别代表x个物品,总价为y 有两种变化: 1.使总价+1,数量不变 2.数量+1,总价跟着变化 (y = y + y / x) 思路: 给出目标x,y,计算最少变化次使数量变化 ...

  5. 2013ACM/ICPC亚洲区南京站现场赛---Poor Warehouse Keeper(贪心)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4803 Problem Description Jenny is a warehouse keeper. ...

  6. Poor Warehouse Keeper

    Poor Warehouse Keeper http://acm.hdu.edu.cn/showproblem.php?pid=4803 Jenny is a warehouse keeper. He ...

  7. HDU 4952 Poor Mitsui(贪心)

    HDU 4957 Poor Mitsui pid=4957" style="">题目链接 思路:利用相邻交换法去贪心就可以.注意容积为0的情况,这是个坑点 代码: ...

  8. 【贪心】hdu4803 Poor Warehouse Keeper

    题意:一开始有1个物品,总价是1.你的一次操作可以要么使得物品数量+1,总价加上当前物品的单价.要么可以使得总价+1,物品数量不变.问你最少要几次操作从初始状态到达有x个物品,总价是y的状态.这里的y ...

  9. HDU 4802 && HDU 4803 贪心,高精 && HDU 4804 轮廓线dp && HDU 4805 计算几何 && HDU 4811 (13南京区域赛现场赛 题目重演A,B,C,D,J)

    A.GPA(HDU4802): 给你一些字符串对应的权重,求加权平均,如果是N,P不计入统计 GPA Time Limit: 2000/1000 MS (Java/Others)    Memory ...

随机推荐

  1. Grunt - 安装指南

    发现周围有些人对前端存在偏见. 他们认为前端只是用没那么复杂的技术对着界面调来调去,一点点打磨,最后做出一个没什么实用价值的“花瓶”. 其实,前端的技术栈并不简单,比如我们可以用Grunt进行一些自动 ...

  2. 十八、curator recipes之DistributedDelayQueue

    简介 curator实现了类似DelayQueue的分布式延迟队列 官方文档:http://curator.apache.org/curator-recipes/distributed-delay-q ...

  3. BootStrap-select 插件的使用

    这是一款下拉框多选的插件,非常的抢到,什么样式都是有的:首先去参看一下官网的信息,详细介绍是怎么使用的: 相关官网网址:  https://silviomoreto.github.io/bootstr ...

  4. QT5.4.2静态编译(包含QtWebKit),在VS2013上创建项目,并成功运行

            Qt项目发布的exe程序,默认是以动态链接形式的,这样发布后的程序会附带好多Qt自己的dll库,这样文件数量不仅多,而且移植到其他电脑上的时候,还可能会遇到,提示缺其他库等各种运行不起 ...

  5. mac 更新macOS Sierra 之后无法正常关机

    参考网址h:ttps://www.zhihu.com/question/50940249 这里就简单记录一下,因为网上写的仔细的比较少,我也写一份,希望病友们可以更方便的找到解决办法 其实就是mysq ...

  6. vue-router 路由懒加载

    webpack打包会将所有资源文件合并压缩成一个文件,导致最终的文件非常大,甚至超过几M,以致页面首次加载会比较慢,如下图: 其中红色标出的是在浏览器中加载的js文件,gzip压缩前已经达到500多K ...

  7. react解决roadhog buildDll 【转】

    本地删了 node module 目录,重新安装的时候,提示 找了找,可如下解决 ------- 转自: https://www.cnblogs.com/huhanhaha/p/7605722.htm ...

  8. 有用的linux指令(资料转载)

    对 Linux 新手非常有用的20个命令                                                                    你打算从Windows换 ...

  9. python学习笔记之——python模块

    1.python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  10. Eclipse创建第一个Servlet(Dynamic Web Project方式)、第一个Web Fragment Project(web容器向jar中寻找class文件)

    创建第一个Servlet(Dynamic Web Project方式) 注意:无论是以注解的方式还是xml的方式配置一个servlet,servlet的url-pattern一定要以一个"/ ...