璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


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 由 温婕莺