准确率rate

准确率(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 }


最后献上一首膜你抄

屏幕在深夜微微发亮

思想在那虚树路径上彷徨

平面的向量交错生长

织成 忧伤的网

剪枝剪去我们的疯狂

扫描二维码关注公众号,回复: 2619167 查看本文章

SPFA 告诉我前途在何方

01 背包装下了忧伤

笑颜 洋溢脸庞

键盘微凉

鼠标微凉

指尖流淌

代码千行

凸包周长

直径多长

一进考场

全都忘光

你在 OJ 上提交了千百遍

却依然不能卡进那时限

双手敲尽代码也敲尽岁月

只有我一人写的题解

凋零在 OJ 里面

Tarjan 陪伴强连通分量

生成树完成后思路才闪光

欧拉跑过的七桥古塘

让你 心驰神往

队列进出图上的方向

线段树区间修改求出总量

可持久化留下的迹象

我们 伏身欣赏

数论算法

图论算法

高斯费马

树上开花

线性规划

动态规划

时间爆炸

如何优化

我在 OI 中辗转了千百天

却不让我看 AK 最后一眼

我用空间换回超限的时间

随重新编译测完样例

才发现漏洞满篇

原来 CE 是因选错语言

其实爆零

只因忘写文件

如果标算太难请坚定信念

不如回头再看一眼题面

以那暴力模拟向正解吊唁

蒟蒻的蜕变

神犇出现

终将与 Au 擦肩

屏幕在深夜微微发亮

我心在考场

猜你喜欢

转载自www.cnblogs.com/peppa/p/9443327.html
今日推荐