题目链接:http://codeforces.com/contest/807/problem/C

题意:记 AC 率为当前 AC 提交的数量 x / 总提交量 y 。已知最喜欢的 AC 率为 p/q (pq∈[0,1]) 。 求最少在提交多少题(AC or NOT)能恰好达到 AC 率为 p/q

题解:当然可以用数学的方法来求解,我的解法并不是用什么数学方法,直接二分暴力就行。

由于(x+s)/(y+s+us)=(p/q)(s表示ac的,us表示没ac的)所以不妨设

x+s=k*p,y+s+us=k*q。

然后就是枚举k就行了。

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
ll t , x , y , p , q;
cin >> t;
while(t--) {
cin >> x >> y >> p >> q;
ll l = 1 , r = 1000000000;
ll mid = (l + r) >> 1;
while(l <= r) {
mid = (l + r) >> 1;
ll s = p * mid - x , tot = q * mid - y;
//cout << s << ' ' << tot << endl;
if(tot >= s && s >= 0) {
r = mid - 1;
}
else {
l = mid + 1;
}
}
//cout << r + 1 << endl;
if(x * q == y * p) {
cout << 0 << endl;
}
else if(p == q || p == 0) {
cout << -1 << endl;
}
else {
cout << q * (r + 1) - y << endl;
}
}
return 0;
}

最新文章

  1. JavaScript 事件
  2. .net framework体系结构
  3. 查看Validate Subscription 的结果
  4. android学习笔记一——简介
  5. 高质量CSS编写规范
  6. R语言 逐步回归分析
  7. Moq的使用心得
  8. 【JavaScript学习】-JS内置对象3-String对象
  9. Hat’s Words
  10. linux 下oracle导入dmp文件
  11. [poj1160][IOI2000]Post Office【动态规划】
  12. gsoap入门:C/C++代码生成及编译--包含soapcpp2 -qname添加命名空间后报错的解决方法--可用
  13. PriorityBlockingQueue 原理分析
  14. windows 2012 r2企业版没有界面
  15. Luogu 1970 NOIP2013 花匠 (贪心)
  16. 42. oracle通过两张表的一个字段对应,update其中一张表的某个字段
  17. linux_关闭防火墙
  18. 人民币-欧元预测(ARIMA算法)代码
  19. 『Matplotlib』数据可视化专项
  20. Redis学习十:Redis的复制(Master/Slave)【重要】

热门文章

  1. 经典SQL(sqlServer)
  2. spring学习笔记之---bean管理的注解方式
  3. CEPH RGW多 ZONE的配置
  4. 转载:MyBatis mapper.xml中使用静态常量或者静态方法
  5. 分布式ID系列(4)——Redis集群实现的分布式ID适合做分布式ID吗
  6. Java +支付宝 +接入+最全+最佳-实战-demo
  7. Struts1.x 跨站脚本(XSS)漏洞的解决
  8. Python3基本数据类型之列表
  9. js动态添加&lt;tr&gt;&lt;td&gt;
  10. 详解慢查询日志的相关设置及mysqldumpslow工具