1 条题解

  • 0
    @ 2023-5-26 11:38:34

    题意简述

    • 给定正整数 x,zx,z,求满足 z=x×y×gcd(x,y)z=x\times y\times\gcd(x,y) 的最小正整数 yy,若不存在,输出 1-1

    • 每个测试点有 tt 次询问。

    • 1t5×1051\leq t\leq 5\times 10^51x1091\leq x\leq 10^91z2631\leq z\leq 2^{63}

    题目分析

    方法一

    x,y,zx,y,z 中分别含有 x1,y1,z1x_1,y_1,z_1 个素因子 22,则 gcd(x,y)\gcd(x,y) 中含有 min(x1,y1)\min(x_1,y_1) 个素因子 22

    根据条件 z=x×y×gcd(x,y)z=x\times y\times\gcd(x,y)z1=x1+y1+min(x1,y1)z_1=x_1+y_1+\min(x_1,y_1),接着根据 x1x_1y1y_1 的大小关系进行分类讨论:

    • x1>y1x_1>y_1
      此时 z1=x1+2y1z_1=x_1+2y_1,且 x1>y13x1>z1x_1>y_1\Leftrightarrow 3x_1>z_1。注意 z1x1z_1-x_1 必须为偶数,否则 y1y_1 会出现小数的情况。

    • x1y1x_1\leq y_1
      此时 z1=2x1+y1z_1=2x_1+y_1,且 x1y13x1z1x_1\leq y_1\Leftrightarrow 3x_1\leq z_1

    综上,$y_1=\begin{cases} \dfrac{z_1-x_1}2=z_1-\dfrac{x_1}2-\dfrac{z_1}2,&3x_1>z_1\\ z_1-2x_1=z_1-\dfrac{x_1}2-\dfrac{3x_1}2,&3x_1\leq z_1 \end{cases}=z_1-\dfrac{x_1}2-\dfrac{\min(3x_1,z_1)}2$。

    同理,对于其他素因子,也满足上文所述。

    再将这个等式转化成 x,y,zx,y,z 的形式:

    $$y=\dfrac z{\sqrt{x}}\div\sqrt{\gcd(x^3,z)}=\dfrac zx\div\sqrt{\gcd\left(\dfrac zx,x^2\right)} $$

    方法二

    g=gcd(x,y)g=\gcd(x,y),得

    $$z=xyg \Rightarrow\dfrac zx=yg \Rightarrow\dfrac zx=\dfrac yg\times g^2$$

    根据最大公约数性质,我们有 gcd(xg,yg)=1\gcd\left(\dfrac xg,\dfrac yg\right)=1,可得

    $$\begin{aligned} &\gcd\left(\dfrac zx,x^2\right)=\gcd\left[\dfrac yg\times g^2,\left(\dfrac xg\right)^2\times g^2\right]=g^2\\ \Rightarrow&g=\sqrt{\gcd\left(\dfrac zx,x^2\right)} \Rightarrow y=\dfrac zx\div\sqrt{\gcd\left(\dfrac zx,x^2\right)}\end{aligned}$$

    根据上述两种方法,均可证明 $y=\dfrac zx\div\sqrt{\gcd\left(\dfrac zx,x^2\right)}$,故直接计算此式即可。

    时间复杂度 Θ(tlogx2)\Theta(t\log x^2)。(注意计算 gcd\gcd 的时间复杂度)

    • 1

    [NOI Online 2022 入门组] 数学游戏

    信息

    ID
    7391
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    1
    已通过
    1
    上传者