Hdu 6209 The Intersection(Stern-Brocot tree+二分)
来源:互联网 发布:花都金蝶软件代理商 编辑:程序博客网 时间:2024/04/25 12:11
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6209
思路:
1.Stern-Brocot树可以构成所有有理数。
2.对于每次在m1/n1,m2/n2中插入(m1+m2)/(n1+n2)构成下一排。
3.Stern-Brocot树构成的所有分数均为最简分数,即gcd(m,n)==1。
其中,第N排的真分数部分为N阶Farey序,满足对于连续的分数m1/n1,m2/n2,必有m1/n1<m2/n2。
由此,取该数的小数部分,二分答案即可。
注意:此题卡long double。
#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;typedef long long LL;long double lt;int ansl,ansr;void solve(int l1,int r1,int l2,int r2){ if(l1==l2&&r1==r2) return ; if(fabs((long double)l1/r1-lt)<fabs((long double)ansl/ansr-lt)) { ansl=l1; ansr=r1; } if(fabs((long double)l2/r2-lt)<fabs((long double)ansl/ansr-lt)) { ansl=l2; ansr=r2; } int ml=(l1+l2); int mr=(r1+r2); if(mr>100000) return ; if((long double)ml/mr<lt) solve(ml,mr,l2,r2); else solve(l1,r1,ml,mr);}int main(){ int t; scanf("%d",&t); while(t--) { int flag=0,k; scanf("%d",&k); ansl=ansr=1; long double tmp=pow((long double)k,(long double)2.0/3.0); lt=tmp-(int)floor(tmp); solve(0,1,1,1); printf("%d/%d\n",(int)floor(tmp)*ansr+ansl,ansr); } return 0;}
阅读全文
0 0
- Hdu 6209 The Intersection(Stern-Brocot tree+二分)
- HDU-4556-Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- HDU 4556 Stern-Brocot Tree
- hdu4556-Stern-Brocot Tree
- hdu4556-Stern-Brocot Tree
- hdu 4556 Stern-Brocot
- UVa Problem 10077 The Stern-Brocot Number System (Stern-Brocot 代数系统)
- HDOJ 4556 Stern-Brocot Tree
- Farey序列(Stern-Brocot tree的衍生)
- (挑战编程_5_7)The Stern-Brocot Number System
- The Stern-Brocot Number System(排序二叉树)
- HDU 6209 The Intersection(二分)
- hdu4556 西山居四 Stern-Brocot Tree
- PE 372 【类欧几里德】【Stern-Brocot Tree】
- 10077 - The Stern-Brocot Number System
- 110507 The Stern-Brocot Number System
- Java:HashMap、HashTable
- C++的STL之仿函数简单介绍
- 从主函数输入十个不等长的字符串,编写函数,对这些串进行排序,在主调函数中输出排好序的串,指针实现。
- 例题7-2 最大乘积(Maximum Product, UVa 11059)
- dp 最大全1子正方形
- Hdu 6209 The Intersection(Stern-Brocot tree+二分)
- 顺序表应用2:多余元素删除之建表算法
- 今天是第几天
- SATA电源线和数据线接口定义
- eclipse启动tomcat无法访问
- cookie 关于记录上次访问时间的servlet
- virsh安装虚拟机(centos)
- 导航框架
- 《移动Web前端高效开发实战》笔记1——静态布局在移动端上的自适应