icpc:problems:luogup8814
problems | |
---|---|
名称 | 解密 |
题目编号 | 2022 CSP-J T2 |
题目链接 | luogu.com.cn/… |
来源 | CCF |
算法分类 | 二分答案, 数学 |
难易程度 | 一般般 |
解密
想法
可以通过公式算出和,需要知道对于两数相加的和一定的情况下,两数越相近积越大。所以积满足单调性。
代码实现
#include<cstdio> int main() { int k=1; scanf("%d", &k); while(k--) { long long int n, d, e; scanf("%lld %lld %lld", &n, &d, &e); long long int s = n - e*d + 2; long long int l = 1, r = s / 2, mid; while(l < r) { mid = (l + r + 1) / 2; if(mid * (s - mid) <= n) l = mid; else r = mid - 1; } if((l * (s-l)) == n) printf("%lld %lld\n", l, s-l); else printf("NO\n"); } return 0; }
/app/www/public/data/pages/icpc/problems/luogup8814.txt · 最后更改: 2024/03/26 08:56 由 温婕莺