[类欧几里得算法] BZOJ 2712 [Violet 2]棒球
来源:互联网 发布:细说php第二版高清pdf 编辑:程序博客网 时间:2024/04/27 14:58
同 [类欧几里得算法 数论] BZOJ 2187 fraction
AwD orzz
#include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath>using namespace std;typedef long long ll;typedef pair<ll,ll> abcd; abcd Solve(ll p1,ll q1,ll p2,ll q2) { ll l=p1/q1+1; abcd ret; if (l*q2<p2) return abcd(l,1); if (p1==0) return abcd(1,q2/p2+1); if (p1<=q1 && p2<=q2){ ret=Solve(q2,p2,q1,p1); swap(ret.first,ret.second); return ret; } ll t=p1/q1; ret=Solve(p1-q1*t,q1,p2-q2*t,q2); ret.first+=ret.second*t; return ret; }int n; ll r;int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); while (scanf("%d 0.%lld",&n,&r)==2){ if (r==0) { printf("1\n"); continue; } ll x=10; while (n--) x*=10; ll lu=r*10-5,ld=x,ru=r*10+5,rd=x,g; g=__gcd(lu,ld); lu/=g; ld/=g; g=__gcd(ru,rd); ru/=g; rd/=g; abcd ret=Solve(lu,ld,ru,rd); printf("%lld\n",min(ret.second,ld)); } return 0;}
0 0
- [类欧几里得算法] BZOJ 2712 [Violet 2]棒球
- [BZOJ2712][Violet 2][类欧几里得算法]棒球
- [BZOJ2712][[Violet 2]棒球][类欧几里得算法]
- bzoj 3817: Sum 类欧几里得算法
- [类欧几里得算法 数论] BZOJ 2987 Earthquake
- [类欧几里得算法 数论] BZOJ 3817 Sum
- [类欧几里得算法 数论] BZOJ 2187 fraction
- [Violet 2]棒球 (求两分数间分母最小的分数)
- BZOJ 2711: [Violet 2]After 17
- [类欧几里得算法 线段树] BZOJ 1938 [CROATIAN2010] ALADIN
- bzoj 2718: [Violet 4] (floyed+匈牙利算法)
- 【BZOJ 2724】 [Violet 6]蒲公英
- bzoj 2724: [Violet 6]蒲公英
- bzoj 2708: [Violet 1]木偶
- Bzoj 2724 [Violet 6]蒲公英
- BZOJ 2721 [Violet 5]樱花
- BZOJ 2724 [Violet 6]蒲公英
- BZOJ 2724 [Violet 6] 蒲公英
- Activity的launchMode和taskAffinity介绍
- 用PyCharm专业版实现远程调试tensorflow
- 示例:WPF注册补货全局异常
- 如何利用花生壳来搭建突破内网访问的服务器
- 比特率
- [类欧几里得算法] BZOJ 2712 [Violet 2]棒球
- JavaScript-六种数据类型
- js promise实现笔记
- Python读写文件模式
- 报数退出队列
- Android学习之BottomNavigationBar实现Android特色底部导航栏
- php视频教程实战之Yii2.0打造完整电商平台
- CSS3新增属性
- 【Window 硬件】禁用驱动程序强制签名