HDU-4803-贪心+卡精度(挺难的)
来源:互联网 发布:淘宝怎么和卖家聊天 编辑:程序博客网 时间:2024/05/16 15:50
给定一个电子版,上面显示数量,下面显示总价格。按上面的按钮,数量会加一,总价格也会加上一个单价,按下面,总价格加一,
问最少按几个,可以得到想要的那个结果。
第一次写的时候,听后面人说了一句状态压缩dp,我一看数据范围好像哦。。可是怎么也想不开。。
后来看题解才发现是贪心。
把y分成x份(给定的目标数),然后在对每一份进行加y的操作,不然y太多了肯定会超时。代码有解释。
#include <iostream>#include <cmath>#include <cstdio>#include <cstring>#include <vector>using namespace std;const double EPS=1e-5;//这道题的想法是贪心,看了好多题解,后来看了一个,eps太多,连次数也加,我一点都理解不了。//后来看了这个才理解了。/*一个 x,一个y,发现是单价的问题,不管怎么弄,单价都在增加,最大的单价就是那个初始y/x的,这样就好办了。把y分成x份,每一份都进行加。而x变得次数已经被提前预定了。需要判定的就是当y的精度太大的时候就出不来了,*/int main(){ double x,y; while(~scanf("%lf%lf",&x,&y)) { //int a=1; double b=1; if(x>y) { cout<<"-1"<<endl; continue; } int time=int(x)-1; double xl=(y+1-0.000001)/x;//斜率 for(int i=1;i<=(int)x;i++) { int t=(int)(i*xl-b);//要加的y。 b+=t;//把那个加到b上。 time+=t;//次数 b=b*(i+1)/i;//加x,总价的变化; //a++; } cout<<time<<endl; }}
0 0
- HDU-4803-贪心+卡精度(挺难的)
- HDU 5935 Car(贪心、精度爆炸)
- HDU-5935 Car 逆推 贪心 精度
- hdu5935 Car 贪心 卡精度
- hdu 4803 (想法题 卡精度)
- HDU 4803 Poor Warehouse Keeper(贪心+注意精度) 13区域赛
- Poor Warehouse Keeper hdu 4803(思维,卡精度)
- hdu 1408 盐水的故 (注意精度)
- hdu 4803 贪心
- hdu 4803 贪心
- 01背包+卡精度 Hdu 2955
- HDU 2570 迷瘴(贪心 过程处理不好会导致精度问题)
- hdu5935 Car(贪心,精度)
- HDU1408-卡精度的数学题
- hdu 4803 贪心/思维题
- HDU-2199(search_bin-精度)
- hdu 1969 二分+精度
- hdu 1151 Cable master (好坑的精度。。。)
- Android性能优化之App应用启动分析与优化
- ios 获取body标签的高度
- 什么是大端和小端
- 畅通工程再续 【kruskal】 【 prime】
- eclipse使用maven时共享Nexus仓库index缓存的解决办法
- HDU-4803-贪心+卡精度(挺难的)
- Android访问网络常见问题之一
- Android消息处理机制之Handler
- NYOJ--241--字母统计
- QSS格式
- 倍数提高工作效率的Android Studio奇技
- 二次封装函数
- Android性能优化之Activity 泄漏
- 布隆过滤器(Bloom Filter)的原理和实现