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 ...
随机推荐
- eclipse自动生成的appcompat_v7出错
用eclipse新建Android工程时,自动生成的appcompat_v7出错,有个红色交叉,而且新建的Android工程有一个红色感叹号. 这时你去看看你新建的Android工程是不是没有生成R文 ...
- POJO概念
POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean.EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口.
- 小猪猪C++笔记基础篇(五)表达式、语句
小猪猪C++笔记基础篇(五) 关键词:表达式.语句 本章的内容比较简单,基本上没有什么理解上的困难,都是知识上的问题.先开始想要不要写呢,本来是不准备写的,但是既然读了书就要做笔记,还是写一写,毕竟还 ...
- Find the k-th Smallest Element in the Union of Two Sorted Arrays
(http://leetcode.com/2011/01/find-k-th-smallest-element-in-union-of.html) Given two sorted arrays A, ...
- 使用Apache的rewrite技术
做PHP项目中需要用到URL重定向技术,基本上的需求就是把比如 /user/heiyeluren 重定向到 /user.php?uid=heiyeluren 之类的URL上,当然,你也可以把 /art ...
- 6.PHP 教程_PHP数据类型
PHP数据类型 String(字符串),Integer(整型),Float(浮点型),Boolean(布尔型),Array(数组),Object(对象), NULL(空值). PHP字符串 一个字符串 ...
- [LeetCode]题解(python):003-Longest Substring Without Repeating Characters
题目来源: https://leetcode.com/problems/longest-substring-without-repeating-characters/ 题意分析: 题目是要求出最长的不 ...
- VC编程之设置客户区背景图片
在很多系统中出于美观的需要常常要设置背景图片.下面我介绍一种在客户区设置背景图片的简单方法. 1 .将背景bmp 图片导入到工程,资源ID 这里假设为 IDB_BITMAP1 2 .在视图类添加如下代 ...
- C++模板:qsort
void qsort(int l,int r){ int i,j,t,mid; mid=b[(l+r)>>1]; i=l; j=r; do{ while (b[i]<mid) i++ ...
- webscraping documentation — webscraping documentation
webscraping documentation - webscraping documentation webscraping documentation¶ Introduction Backgr ...