CodeForce-807C Success Rate(二分数学)
2024-08-31 03:29:03
Success Rate
给你4个数字 x y p q ,要求让你求最小的非负整数b,使得 (x+a)/(y+b)==p/q,同时a为一个整数且0<=a<=b。
(0 ≤ x ≤ y ≤ 109; 0 ≤ p ≤ q ≤ 109; y > 0; q > 0)
解法:
(x+a)/(y+b)==p/q;
-->
x+a=np;
y+b=nq;
-->
a=np-x;
b=nq-y;
-->
二分n;
#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
#define _ ios::sync_with_stdio(false),cin.tie(0) const int MAXN = 5010;
const int INF = 0xfffffff;
typedef long long ll; int t;
ll x,y,p,q; int main()
{
cin>>t;
while(t--)
{
cin>>x>>y>>p>>q;
ll l=0,r=1e9,ans=-1;
while(l<=r)
{
ll mid=(l+r)>>1;
ll a=mid*p-x,b=mid*q-y;
if(a>=0&&b>=0&&a<=b)
{
ans=mid;
r=mid-1;
}
else
l=mid+1;
}
if(ans==-1)
cout<<-1<<endl;
else
cout<<ans*q-y<<endl;
}
return 0;
}
最新文章
- <;十四>;JDBC_c3p0数据库连接池
- C#开源磁盘/内存缓存引擎
- [PaPaPa][需求说明书][V1.0]
- java提高篇---HashMap
- 解决 iReport 生成 pdf 时显示不出中文的问题
- floyd+动态规划 hdu-4571-Travel in time
- Heritrix与Nutch对比
- Apple pay的使用
- KB奇遇记(1):开篇
- 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
- js原生数组去重
- 基于89C51/52单片机的红外线遥控驱动
- [转]Windows Server 2016 服务器IIS配置
- php进程(线程)通信基础--System V共享内存
- 转载:2.2.3 配置项的注释《深入理解Nginx》(陶辉)
- BZOJ 4405 [wc2016]挑战NPC 带花树 一般图最大匹配
- 爬虫项目之NABC
- [Windows Azure] Building worker role B (email sender) for the Windows Azure Email Service application - 5 of 5.
- cve-2010-3333 Microsoft Office Open XML文件格式转换器栈缓冲区溢出漏洞 分析
- asp动态数组