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 ...
随机推荐
- The Highest Mark(01背包)
The Highest Mark Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- MyEclipse中jsp的凝视报错解决
jsp页面中凝视报错: 出错现场:在eclipse中没有报错.在MyEclipse中报错. <!-- To use express install, set to playerProductIn ...
- Javascript数组的声明
var cars=new Array(); cars[0]="Audi"; cars[1]="BMW"; cars[2]="Volvo"; ...
- 基本event封装:阻止冒泡、默认事件等
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> ...
- jquery获取多个checkbox的值异步提交给php
html代码: <tr> <td><input type="checkbox" name="uid" value="&l ...
- 正则语法笔记-regular expression note
参考文档:python正则表达式 正则表达式定义:正则是一门高度专业编程语言,内嵌在其他语言(python re模块)中使用.正则表达式包含元字符(metacharacter)列表,列表如下: . ^ ...
- https tomcat 证书搭建
首先生成证书说明 keytool -genkey -alias castest -keyalg RSA -keystore c:/keys/caskey 先让输入密码,密码必须记住,下面会用到 其中“ ...
- feof()和EOF的用法(转载)
查看 stdio.h 可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)-& ...
- IOS 定位服务与地图的应用开发
1.定位服务 现在的移动设备很多都提供定位服务,IOS设备提供3种不同定位途径: (1)WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:IPhone,IPod touch和IPad ...
- jQuery File Upload 插件 php代码分析
jquery file upload php代码分析首先进入构造方法 __construct() 再进入 initialize()因为我是post方式传的数据 在进入initialize()中的po ...