欢迎光临散文网 会员登陆 & 注册

CSP-J2022解密(二分算法)

2022-12-05 18:28 作者:讽刺派数学家  | 我要投稿

#include<bits/stdc++.h>

using namespace std;

int k;

int main()

{

scanf("%d",&k);

for(int i=1;i<=k;i++)

{

long long n,d,e;

scanf("%lld %lld %lld",&n,&d,&e);

long long m=n-d*e+2;

long long r=m/2,l=1;//因为p<=q,所以我们可以只二分左部分的区间

while(l<r)

{

int mid=(l+r)/2;

if(mid*(m-mid)>=n)

{

r=mid;

}

else

{

l=mid+1;

}

}

if(l*(m-l)==n)

{

printf("%lld %lld\n",l,(m-l));

}

else

{

printf("NO\n");

}

}

return 0;

}


CSP-J2022解密(二分算法)的评论 (共 条)

分享到微博请遵守国家法律