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;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM