准确率(rate)
【题目描述】
你是一个骁勇善战、日刷百题的OIer. 今天你已经在你OJ 上提交了y 次,其中x
次是正确的,这时,你的准确率是x/y.
然而,你最喜欢一个在[0; 1] 中的有理数p/q(是一个既约分数),所以你希望再进行若干次提交,使你的准确率变为p/q. 当然,由于你的实力很强,你可以随意决定进行多少次正确的提交和多少次错误的提交. 同时,你不希望把一天的时间都用在提交上,所以你想求出最少还要进行多少次提交(包括正确的和错误的),才能达到这一目标.
注意:本题中,0/1 和1/1 都是既约分数.
【输入格式】
从文件rate.in 中读入数据。
输入第一行包含一个正整数t (t<=5<= 10^5),表示数据组数.
接下来t 行,每行4 个整数x; y; p; q (0 <=x <= y<=10^9; 0<=p<=q <=10^9; y > 0; q > 0),
含义如题所述.
【输出格式】
输出到文件rate.out 中。
输出t 行,每行一个整数,表示使正确率达到p/q 所需最小提交次数;若无法达
到,输出-1.
【样例1 输入】
4
3 10 1 2
7 14 3 8
20 70 2 7
5 6 1 1
【样例1 输出】
4
10
0
-1
【样例1 解释】
第一组数据中,你需要进行4 次正确的提交,使准确率达到7/14,即1/2;
第二组数据中,你需要进行2 次正确的提交,8 次错误的提交,使准确率变为9/24,
即3/8;
第三组数据中,你无需进行任何提交,因为你的准确率已为20/70,即2/7;
第四组数据中,在原有的提交中已有一次错误提交,准确率不可能达到1.
【样例2】
见选手目录下的rate/rate2.in 与rate/rate2.ans。
【子任务】
对于30% 的数据,t = 1;
对于另30% 的数据,t<= 1000.
以上两部分数据中,各有50% 的数据保证x; y; p; q<= 10^4.
设nq>=y① np-x>=0② np-x<=nq-y③ ,其分别代表的意思是全部做的题数不能超过q(扩大n倍),需要做对的题数-已做对的题数不能为负,还需要做对的题数不能超过还需要做的全部题数。合乎逻辑(?。然后我们发现,②式和③式包含了①式,因此只考虑②③式即可,现在要求出n。由②式推出n>=x/p,由③式退出n >= (y-x)/(q-p),因此只要取x/p和(y-x)/(q-p)中的较大值,就得到了n。要求最小提交次数,用总次数n*q减去已提交次数y就为答案。
代码如下
1 1 #include<cstdio> 2 2 #include<algorithm> 3 3 using namespace std; 4 4 #define ll long long int 5 5 ll x,y,p,q,ans; 6 6 int t; 7 7 int main() 8 8 { 9 9 10 10 scanf("%d",&t); 11 11 while(t--) 12 12 { 13 13 scanf("%lld%lld%lld%lld",&x,&y,&p,&q); 14 14 if(p == q) 15 15 { 16 16 if(x == y) printf("0\n"); 17 17 else printf("-1\n"); 18 18 } 19 19 else 20 20 { 21 21 ans = max((x-1)/p,(y-x-1)/(q-p))+1; 22 22 printf("%lld\n",(ll)ans*q-y); 23 23 } 24 24 } 25 25 return 0; 26 26 }
最后献上一首膜你抄
屏幕在深夜微微发亮
思想在那虚树路径上彷徨
平面的向量交错生长
织成 忧伤的网
剪枝剪去我们的疯狂
SPFA 告诉我前途在何方
01 背包装下了忧伤
笑颜 洋溢脸庞
键盘微凉
鼠标微凉
指尖流淌
代码千行
凸包周长
直径多长
一进考场
全都忘光
你在 OJ 上提交了千百遍
却依然不能卡进那时限
双手敲尽代码也敲尽岁月
只有我一人写的题解
凋零在 OJ 里面
Tarjan 陪伴强连通分量
生成树完成后思路才闪光
欧拉跑过的七桥古塘
让你 心驰神往
队列进出图上的方向
线段树区间修改求出总量
可持久化留下的迹象
我们 伏身欣赏
数论算法
图论算法
高斯费马
树上开花
线性规划
动态规划
时间爆炸
如何优化
我在 OI 中辗转了千百天
却不让我看 AK 最后一眼
我用空间换回超限的时间
随重新编译测完样例
才发现漏洞满篇
原来 CE 是因选错语言
其实爆零
只因忘写文件
如果标算太难请坚定信念
不如回头再看一眼题面
以那暴力模拟向正解吊唁
蒟蒻的蜕变
神犇出现
终将与 Au 擦肩
屏幕在深夜微微发亮
我心在考场
原文地址:https://www.cnblogs.com/peppa/p/9443327.html