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