hdu 4180
题意; 求接近规定 分数 的 最大分数
用到 farey 数列的第二条性质
1 #include <iostream>
#include<stdio.h>
using namespace std;
/**
|a/b-c/d|最小, 同分的|(ad-bc)/bd| 最小,,即求
|ax-by| 最小
若a,b 有公约数则同分即可。。最小为0
若a,b无公约数,即a,b互质,即求ax-by=1或 -ax+by = 1
此时需要注意 若a==1 求解释x=1,y=0.。。所以当a=1时需要特殊处理
若a!=1 时,,就需要对上面的两个式子ax-by=1或 -ax+by = 1判断,找出最接近的解,即比较分母大的即可 */
long long ex_gcd(long long a,long long b,long long &x, long long &y){
if(b==){
x =;
y =;
return a;
}
long long d = ex_gcd(b,a%b,x,y);
long long temp = x;
x = y;
y = temp - a/b * y;
return d ;
} int main()
{
int t;
cin>>t;
long long a,b,x,y,gcd,d1,d2,c1,c2;
char c;
while(t--){
cin>>a>>c>>b;
gcd = ex_gcd(a,b,x,y);
if(gcd!=){
cout<<a/gcd<<"/"<<b/gcd<<endl;
}else if(a==){
cout<<<<"/"<<b-<<endl;
}else{
// d2 = ex_gcd(b,a,y2,x2);
d1 = (x+b)%b;
d2 = (-x+b)%b;
c1 = (-y+a)%a;
c2 = (y+a)%a;
// cout<<c1<<" "<<c2<<endl;
// cout<<d1<<" "<<d2<<endl;
if(d1>d2)
cout<<c1<<"/"<<d1<<endl;
else
cout<<c2<<"/"<<d2<<endl; }
}
return ;
}
hdu 4180的更多相关文章
- HDU 4180 扩展欧几里得
RealPhobia Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】
Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Proble ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
- hdu 4859 海岸线 Bestcoder Round 1
http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...
- HDU 4569 Special equations(取模)
Special equations Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU 4006The kth great number(K大数 +小顶堆)
The kth great number Time Limit:1000MS Memory Limit:65768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1796How many integers can you find(容斥原理)
How many integers can you find Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d ...
随机推荐
- 每天学点Linux:二
关于输入输出和重定向: 默认情况下标准I/O的输入为键盘,输出为显示屏.输入和输出可以通过符号‘>’进行重定向. 例如可以通过命令:$>newfile 来创建一个新文件(如果newfile ...
- 第八届河南省赛F.Distribution(水题)
10411: F.Distribution Time Limit: 1 Sec Memory Limit: 128 MB Submit: 11 Solved: 8 [Submit][Status] ...
- HTML5 RPG游戏示例
演示地址 点击打开链接
- JAVA词汇大全
JAVA词汇大全 A B C D E F H I J L M O P R S T U V W A Abstract Window Toolkit(AWT)抽象窗体工具集 一个用本地图形组件实现的 ...
- 关于Windows Phone的资源文件Build Action属性
最近一朋友问了一个问题,他想引用一个本地图片到页面上的Image控件,可是发现用Application的GetResourceStream得到的结果是个null值,当时第一个想到的就是他图片的Buil ...
- git 使用笔记(三)-分支的使用
简单介绍 之前说过,每次修改之后,Git 并不是保存这些修改之后的差异变化,实际上就像一个照相机一样,将修改后的文件拍下作为文件快照,记录在一个微型的文件系统中.在 Git 中提交时,会保存一个提交对 ...
- C++运算符重载为非成员函数
#include<iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0 ...
- Unity cg vertex and fragment shaders(一)
cg片段 Cg程序片段写CGPROGRAM和ENDCG之间 开始时的片段可以作为#pragma语句编译指令 Pass { // ... the usual pass state setup ... C ...
- JavaSE_ API常用对象 总目录(11~14)
JavaSE学习总结第11天_开发工具 & API常用对象111.01 常见开发工具介绍11.02 Eclipse和MyEclipse的概述11.03 Eclipse的下载安装及卸载11.04 ...
- psycopg2接口的基本用法
转载自:http://zhiwei.li/text/2012/02/05/psycopg2接口的基本用法/ 与其他实现了DB API 2.0协议的其他数据库用户基本一致. import psycopg ...