Success Rate CodeForces
来源:互联网 发布:如何寻找淘宝客 编辑:程序博客网 时间:2024/06/14 11:01
这道题 要求求最小满足条件的提交次数 ,条件为(x+Successful Submission)/(y+Submission)= p / q 。
即为 x+Successful Submission = p * n 且 y+Submission = q * n 。
我们二分查找的就是这个n
还有隐藏条件 a > = 0 && b > = 0 && a < = b 这些就是check条件。
二分答案 本身就满足单调性 所以不用证明
#include <iostream>using namespace std;typedef long long ll;int main(){ int cases; cin >> cases; while(cases--) { int x,y,p,q; cin >> x >> y >> p >> q; ll l=0,r=1e9; ll ans=-1; while(l<=r) {// (x+a)/(y+b)=p/q// x+a =p*n// y+b =q*n ll mid=(l+r)/2; ll a=p*mid-x; ll b=q*mid-y; if(a>=0 && b>=0 && a<=b) // check条件 { ans=mid; r=mid-1; } else { l=mid+1; } } if(ans==-1) cout << ans << endl; else cout << ans*q-y << endl; // 不能直接输出 ans 这个是 n }}
其实 我想了一下 应该可以用ex_gcd()做 但是 条件略多
这道题如果用ex_gcd()做的话 可能会爆ll 所以不能
其实可以直接用不等式做出来
0 0
- Success Rate CodeForces
- Success Rate CodeForces
- C. Success Rate (codeforces)
- Codeforces 807C Success Rate 二分
- codeforces 807C Success Rate 数论
- codeforces 773A Success Rate 二分
- Codeforces Round#412 C Success Rate
- Codeforces Round #412 C. Success Rate (数论)
- Codeforces 807C Success Rate【二分+数学思维】
- Codeforces Round #412 C. Success Rate (二分查找)
- codeforces #412 div2 C Success Rate(二分查找)
- Codeforces Round #412 C. Success Rate (数论)
- Codeforces807 C. Success Rate
- C. Success Rate 数论
- CodeFroces 412.C Success Rate
- CodeFroces 412.C Success Rate
- cf 807C Success Rate
- cf 412 C. Success Rate
- 实体连接与符号连接ln
- Pod install 之后 no such module
- UESTC-250-数位dp
- 深入理解 Android 卷I
- LeetCode 450.Delete Node in a BST
- Success Rate CodeForces
- INI文件操作
- apue第八章 进程控制 (1)
- Ubuntu16.04下面安装ExtCalc计算器
- CodeForces
- Mybatis拦截器介绍及分页插件
- poj 2155 Matrix
- LeetCode | 575. Distribute Candies
- 总结