CF1604 D. Moderate Modular Mode(数论+构造)

目录

Description

有两个偶数 \(x\ y\),满足 \(n\%x=y\%n\),求满足条件的任意 \(n\)

State

\(2<=x,y<=10^9\)

Input

4
4 8
4 2
420 420
69420 42068

Output

4
10
420
9969128

Solution

\(x=y\) 时, \(n=x\)

\(x>y\) 时,如果 \(n>y\),那么式子左边,也就是 \(y\%n=y\),易推出 \(n=kx+y\)

\(x<y\) 时,这个直推式子就比较麻烦了,但是可以确定 \(n\) 的范围 \([x,y]\),当 \(y=kx\) 时,\(x=y\);

同时也可以确定余数 \(r\) 的范围 \([0,x)\),假设 \(kx<y<(k+1)x\),那么 \(n=\frac{kx+y}{2}\),这里建议大家画一下图


Code

signed main()
{
    // IOS;
    rush(){
        ll x, y;
        sll2(x, y);
        if(x == y){
            pll(x);
        }
        else if(x > y){
            pll(x + y);
        }
        else{
            ll ans = x;
            if(y % x){
                ll k = y / x;
                ans = k * x + (y - k * x) / 2;
            }
            pll(ans);
        }
    }
    // PAUSE;
    return 0;
}
posted @ 2021-10-31 15:17  Bcoi  阅读(239)  评论(0)    收藏  举报