codeforces 807 C. Success Rate(二分)
2024-09-01 07:12:03
题目链接: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;
}
最新文章
- JavaScript 事件
- .net framework体系结构
- 查看Validate Subscription 的结果
- android学习笔记一——简介
- 高质量CSS编写规范
- R语言 逐步回归分析
- Moq的使用心得
- 【JavaScript学习】-JS内置对象3-String对象
- Hat’s Words
- linux 下oracle导入dmp文件
- [poj1160][IOI2000]Post Office【动态规划】
- gsoap入门:C/C++代码生成及编译--包含soapcpp2 -qname添加命名空间后报错的解决方法--可用
- PriorityBlockingQueue 原理分析
- windows 2012 r2企业版没有界面
- Luogu 1970 NOIP2013 花匠 (贪心)
- 42. oracle通过两张表的一个字段对应,update其中一张表的某个字段
- linux_关闭防火墙
- 人民币-欧元预测(ARIMA算法)代码
- 『Matplotlib』数据可视化专项
- Redis学习十:Redis的复制(Master/Slave)【重要】
热门文章
- 经典SQL(sqlServer)
- spring学习笔记之---bean管理的注解方式
- CEPH RGW多 ZONE的配置
- 转载:MyBatis mapper.xml中使用静态常量或者静态方法
- 分布式ID系列(4)——Redis集群实现的分布式ID适合做分布式ID吗
- Java +支付宝 +接入+最全+最佳-实战-demo
- Struts1.x 跨站脚本(XSS)漏洞的解决
- Python3基本数据类型之列表
- js动态添加<;tr>;<;td>;
- 详解慢查询日志的相关设置及mysqldumpslow工具