poj 1079 Ratio 模拟

原创 2017年07月09日 22:14:07

模拟题,只是涉及分数精度的一个技巧:c++中如何取整?如果a是一个浮点数,int b=(int)a; b是a的整数部分么??

        答案是不一定,因为在一般实际的算法中,不是int b=(int)a这么简单 a可能经过了很多运算,有精度丢失。比如a的真值是8 计算机不小心搞成了7.999999或8.000001这样直接取整就会有问题(假设我们的计算机误差范围不超过1e-6,计算机不能保证浮点运算绝对正确,但是可以保证误差范围) ,但是 如果我们加一个比计算机浮点误差稍大的数,比如1e-5,也就是int b=(int)(a+1e-5) 就会发现不管误差成7.999999到8.000001之间任何值,我们用int b=(int)(a+1e-5)都能得到8.

        说点题外话~

        最近1年因为在网易实习搞javaWeb好久没刷题了,也不是说一点刷题的时间都没有,只是因为平时公司要上班,下班后有点贪玩。。今天刚参加完公司应届生培训,发现很多比自己优秀的人,突然觉得觉得以前打dota和网游真是在虚度光阴。戒了戒了,以后专心朝自己的目标前进吧~~~

代码:

//poj 1079
//sep9
#include <iostream>
#include <cmath>
using namespace std;

int gcd(int x,int y)
{
	return x%y==0?y:gcd(y,x%y);
}

bool less_or_equal(double x,double y)
{
	return fabs(x-y)<1e-9?true:x<y;
}

int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)==2){
		int d=gcd(a,b);
		a/=d,b/=d;
		double quotient=a*1.0/b;
		double max_def=1e9;
		for(int i=1;i<=b;++i){
			int x=(int)(quotient*i+1e-9);
			int y=x+1;
			if(less_or_equal(fabs(y*1.0/i-quotient),fabs(x*1.0/i-quotient))){
				double def=fabs(y*1.0/i-quotient);
				if(!less_or_equal(max_def,def)){
					printf("%d/%d\n",y,i);
					max_def=def;
				}
			}else{
				double def=fabs(x*1.0/i-quotient);
				if(!less_or_equal(max_def,def)){
					printf("%d/%d\n",x,i);
					max_def=def;
				}
			}
		}
		puts("");		
	}	
	return 0;
}


POJ 1079 Ratio 笔记

给出买股票盈利的人和亏本的人。从分母为1开始按分母递增和精度递增顺序输出分数。...
  • woniupengpeng
  • woniupengpeng
  • 2017-05-10 21:58:14
  • 155

poj 1079 Ratio

//poj 1079 Ratio /* 维护最小误差,枚举每个分母。注意两点: 1.输入可能可以约分,这个有案例 2.如果出现同分母两个分子都一样更精确,取分子大的 */ #include...
  • birdforever
  • birdforever
  • 2010-09-07 16:57:00
  • 616

1079 Ratio

校内练习赛做的,数学题,枚举分母注意要同时计算取上整和下整//4452592_AC_0MS_292K /************************************************...
  • twilightgod
  • twilightgod
  • 2008-12-12 18:39:00
  • 303

POJ 1079 : Ratio - 分数逼近

题意:题意一目了然吧~分母从1到max,进行逼近解法一:#include#include#includeusing namespace std;int main(){ int i,p,q,pt,a,b...
  • Booky_Amnesia
  • Booky_Amnesia
  • 2015-01-10 21:43:42
  • 412

POJ 3925 Minimal Ratio Tree 最小生成树

题目大意: 给定N个点(N)
  • Orzmyk
  • Orzmyk
  • 2014-09-15 22:23:57
  • 390

POJ3925 Minimal Ratio Tree

Minimal Ratio Tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1071...
  • mowayao
  • mowayao
  • 2013-10-02 22:15:46
  • 621

POJ1984 Dirt Ratio(详细解析+数据)_并查集+离线操作

Navigation Nightmare   /* 题目大意:有N个农场由M条南北东西方向的道路连接 主人公吧农场和道路的地图给弄丢了,去计算机中搜索答案 计算机中的信息是这样的,A,B村庄由南...
  • qq_29660153
  • qq_29660153
  • 2017-08-04 20:34:54
  • 150

POJ 3925 Minimal Ratio Tree(枚举+最小生成树)

POJ 3925 Minimal Ratio Tree 题目链接 题意:给定一些点权和一个边权矩阵,求一个最小的比例的树 思路:先枚举用哪些点,然后求最小生成树即可 代码: ...
  • u011217342
  • u011217342
  • 2014-11-28 18:46:00
  • 1078

Aspect Ratio转换

DAR: Display Aspect Ratio , 可以通过MediaInfo获取. 要么为16:9, 要么为4:3.SAR: Storage Aspect Ratio, 片源每帧的width...
  • linuw
  • linuw
  • 2010-08-27 10:52:00
  • 1739

[视频编码] Picture Aspect Ratio

本文主要针对图片的宽高比进行阐述
  • starperfection
  • starperfection
  • 2015-07-06 14:48:21
  • 1095
收藏助手
不良信息举报
您举报文章:poj 1079 Ratio 模拟
举报原因:
原因补充:

(最多只允许输入30个字)