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

\(\mathtt{Link}\)

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

\(\mathtt{Description}\)

\(t\) 组多测。

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

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

  • \(1 \le t \le 5 \times 10^5\)
  • \(1 \le x \le 10^9\)
  • \(1 \le z < 2^{63}\)

\(\mathtt{Solution}\)

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

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

其次我们发现:最小的 \(y\) 挺迷惑的,可以证明的是 \(y\) 至多只能有 \(1\) 个解。

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

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

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

接下来构造 \(y\) 即可。具体地:

\[y =\dfrac{k}{\sqrt{\gcd(x^2, k)}} \]

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

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

\(\mathtt{Time} \text{ } \mathtt{Complexity}\)

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

\(\mathtt{Code}\)

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

不错的题!

posted @ 2022-04-23 00:31  dbxxx  阅读(43)  评论(0编辑  收藏  举报