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

Link\mathtt{Link}

P8255 [NOI Online 2022 入门组] 数学游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

Description\mathtt{Description}

tt 组多测。

每组给定 x,zx, z,求最小的满足 x×y×gcd(x,y)=zx \times y \times \gcd(x, y) = zyyyy 不保证有解。

Data Range & Restrictions\mathtt{Data} \text{ } \mathtt{Range} \text{ } \mathtt{\&} \text{ } \mathtt{Restrictions}

  • 1t5×1051 \le t \le 5 \times 10^5
  • 1x1091 \le x \le 10^9
  • 1z<2631 \le z < 2^{63}

Solution\mathtt{Solution}

首先看到这个题,有一个非常明显的东西:

如果有解,肯定 xzx | z,那么我们的第一步应该是判断掉 xzx \nmid z 的情况。其次考虑令 k=zxk = \dfrac{z}{x},问题转化为满足 y×gcd(x,y)=ky \times \gcd(x, y) = k 的最小的 yy

其次我们发现:最小的 yy 挺迷惑的,可以证明的是 yy 至多只能有 11 个解。

g=gcd(x,y)g = \gcd(x, y),设 a=xga = \dfrac{x}{g}b=ygb = \dfrac{y}{g}。进一步转化为 k=b×g2k = b \times g^2,同时得到 x=a×g x = a \times g, y=b×gy = b \times g, gcd(a,b)=1\gcd(a, b) = 1

想到这样一个性质:gcd(a,b)=1  gcd(r×as,r×bt)=r\gcd(a, b) = 1 \ \Rightarrow \ \gcd(r \times a^s, r \times b^t) = r

考虑到 x=a×gx = a \times gk=b×g2k=b\times g^2。此时我们发现,令 r=g2r = g^2s=2s = 2t=1t = 1,就能得到 g2=gcd(a2×g2,b×g2)=gcd(x2,k)g^2=\gcd(a^2 \times g^2, b \times g^2) = \gcd(x^2, k)。我们就能用已知表示出 gg 了。

接下来构造 yy 即可。具体地:

y=kgcd(x2,k)y =\dfrac{k}{\sqrt{\gcd(x^2, k)}}

gcd(x2,k)\gcd(x^2, k) 不为完全平方数时,无解。

同时我们还能发现,yy 至多只能有一个解。有没有什么简洁美丽的证明证明此题中 yy 至多只能有 11 个解? - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

Time Complexity\mathtt{Time} \text{ } \mathtt{Complexity}

我不知道。sqrt复杂度是多少????

Code\mathtt{Code}

//大无语纯数学题。码力考察0,不上代码

不错的题!

posted @   dbxxx  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示