codeforces807div2 C.Success Rate[二分][数学]
来源:互联网 发布:广东韶关网络问政平台 编辑:程序博客网 时间:2024/06/08 04:56
题意: 现在的正确率是 a/b , 要达到c/d ,可以进行任意次的正确与非正确提交,求最小的提交次数能够得到c/d, 如果不能得到 pirnt -1
思路:
假设要进行p次正确提交,q-p次非正确提交, 则 (a+p)/(b+q) == c/d
由题意知c、d互质,所以 (a+p)/(b+q)应该是 c/d的非最简分数或最简分数, 即 (a+p)/(b+q) == nc/nd , 其中 0<=p<=q n>=1 且都是整数
所以 p = nc-a, q = nd-b p、q都是n的递增函数, 所以二分n寻找最小的n满足条件,无满足输出-1
#include<bits/stdc++.h>using namespace std;typedef long long LL;int main(){ ios::sync_with_stdio(false); int t; cin >> t; while(t--) { int a, b, c, d; cin >> a >> b >> c >> d; LL l = 1, r = 1e9; LL ans = -1; while(l<=r) { LL mid = (l+r) >> 1; //cout << mid << endl; LL p = mid*c-a, q = mid*d-b; if(p>=0 && q>=0 && p<=q) { r = mid-1; ans = q; } else l = mid+1; } cout << ans << endl; } return 0;}
0 0
- codeforces807div2 C.Success Rate[二分][数学]
- Codeforces 807C Success Rate【二分+数学思维】
- Codeforces 807C Success Rate 二分
- Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) C. Success Rate(数学,二分)
- Codeforces807 C. Success Rate
- C. Success Rate 数论
- Codeforces Round #412 C. Success Rate (二分查找)
- codeforces #412 div2 C Success Rate(二分查找)
- CodeFroces 412.C Success Rate
- CodeFroces 412.C Success Rate
- cf 807C Success Rate
- cf 412 C. Success Rate
- C. Success Rate (codeforces)
- codeforces 773A Success Rate 二分
- codeforce round412 div2 C sucess rate 数学|二分
- codeforces 807C Success Rate 数论
- Codeforces Round#412 C Success Rate
- codeforces807div2 E.Prairie Partition[二分]
- Java工具 MyEclipse&F.lux(视力保护)
- ubuntu16.04安装ibus中文输入法
- UVA 11542
- Division, UVa 725 除法
- 线性表顺序存储结构(ArrayList底层实现原理)
- codeforces807div2 C.Success Rate[二分][数学]
- POJ NOI0105-33 计算分数加减表达式的值
- 可能有用的函数
- JS高级类,简单继承
- Linux 脚本攻略学习笔记8
- C++ HackerRank|Simple Text Editor
- 贪心算法之子段和,山东省第八届acm大赛J题company,SDUT3902
- view的绘制
- recyclerview的基本流程