Poj 1650 & Zoj 1601 Integer Approximation (追赶法,分数逼近实数)
来源:互联网 发布:ucloud域名备案 编辑:程序博客网 时间:2024/05/17 01:50
讨论群里有人提起追赶法,于是就搜到了这个题,最后还是没弄明白什么是追赶法……
Zoj上这题的测试数据更强些。
题意:给出一个数字x和一个范围,在这个范围内找两个数字,使它们的商最接近x。
思路一:直接枚举,取n,d为1每次对n,d求商,如果n/d > x,则d增加1,否则n增加1,每次记录下差值最小时n,d的值。
思路二:类似法雷数列进行处理,思想详见上一篇博文
#include <cstdio>#include <cmath>int main (){int limit,p,q;double A,now,del;while (~scanf("%lf%d",&A,&limit)){int n=1,d=1;double min=1e10;while (n<=limit && d<=limit){del=A-1.0*n/d;now=fabs(del);if (now<min){min=now;p=n;q=d;}if (del<=0)d++;elsen++;}printf("%d %d\n",p,q);}return 0;}
#include <cstdio>#include <cmath>double f;int p=100,q=1,n;void Update (int a,int b){if (fabs(f-1.0*a/b)<fabs(f-1.0*p/q)) p=a , q=b;}int main (){while (~scanf("%lf%d",&f,&n)){p=100,q=1;int n1=1,n2=0,d1=0,d2=1;while ((n1+n2) <=n && (d1+d2) <= n){Update(d1+d2, n1+n2);if (1.0*(d1+d2)/(n1+n2)<f)n1+=n2 , d1+=d2;elsen2+=n1 , d2+=d1;}printf("%d %d\n",p,q);}return 0;}
- Poj 1650 & Zoj 1601 Integer Approximation (追赶法,分数逼近实数)
- 追赶法-ZOJ-1601-Integer Approximation
- poj 1650 Integer Approximation “追赶法”搜索
- POJ 1650 Integer Approximation (追赶法求解)
- POJ1650 Integer Approximation(“追赶法”搜索)
- POJ 1650,ZOJ 1601追赶法
- poj 1650 Integer Approximation
- POJ 1650 Integer Approximation 笔记
- POJ 1079 : Ratio - 分数逼近
- poj 1650/3039 追赶法枚举
- ZOJ1601:Integer Approximation
- poj 3039 Close Encounter “追赶法”搜索
- 化实数为分数
- 追赶法
- 追赶法
- 追赶法
- POJ 2976/ZOJ 3068 Dropping tests 01分数规划
- 求解线性方程组--追赶法
- 安卓怎么限制横屏和竖屏
- hibernate 中fetch=FetchType.LAZY问题
- Android C2DM学习——云端推送(转载)
- Java:String和Date、Timestamp之间的转换
- 软件测试技能鉴定(模拟题)___含答案
- Poj 1650 & Zoj 1601 Integer Approximation (追赶法,分数逼近实数)
- Lync 2010升级到Lync 2013 之边缘服务器的部署!
- 网络子系统57_路由Scope
- pl/sql 游标变量实例
- Cocos2D-X定时器selector的使用
- cocos2d-x在windows平台HelloWorld解析系列二
- SSH全注解整合开发环境安装配置 v1.0.BETA
- IOS ScrollView 左右滑动(或者上下滑动)支持其中一种
- 消灭兔子-贪心