题解 [PR #7] 大凯的疑惑

传送门

垃圾题解毁我青春

将给的式子拆开,发现是

\[\sum\limits_{i=1}^k\binom{k}{i}d^ia^{k-i} \]

对组成 \(x\) 的每个质因数 \(p\) 考虑其最大次数
\(p\nmid d\) 时,代入 \(a=p\) 发现原式 \(\not\equiv 0\pmod{p}\),所以 \(x\) 一定不包含这个质因子
\(C(n)=\max\{i\mid p^i|n\}\)
\(p\mid d\) 时,其次数的最大取值就是 \(\min\{C((a+d)^k-a^k)\}\),现在来求这个东西
还是先拆开成最上面的形式
然后一个引理:

\(C(\dbinom{k}{i})=C(k)-C(i), i\in[1, p^{C(k)}]\)
证明:
先看看这个引理长得像什么
貌似是在 \(p\) 进制下 \(\binom{k}{i}\) 末尾 0 的个数 \(k\) 等于 \(k\) 末尾 0 个数减去 \(i\) 末位 0个数
考虑一下 Lucas 定理,发现两者末位都是 0 的位贡献是乘 1 可以忽略
再考虑一下 Kummer 定理发现若 \(k\) 的这一位是 0 而 \(i\) 的这一位不是 0 则 \(i+(k-i)\) 时在这里一定产生了一次进位
而根据 \(i\leqslant p^{C(k)}\) 的限制所有进位情况一定有且仅有这一种可能
Quite Easy Done. Q.E.D.

\(\alpha=C(d), \beta=C(k)\)
于是将一个 \(i\) 处的含 \(p\) 幂次写成 \(\beta-C(i)+i\alpha\)
发现 \(\alpha\geqslant 1\and C(i+1)-C(i)\leqslant 1\),所以这个关于 \(i\) 的函数单调不降
又因为我们要找最小的幂次,所以其实只需要考虑前几项
仔细思考发现只需要考虑前两项,是在 \(p=2\) 的时候,其它时候只需考虑 \(i=1\) 那一项
写个对拍发现还需要特判 \(p=2\and k=2\)
然后 \(\gcd\) 处理即可

高精 GCD,懂的都懂
from math import gcd
d, k=map(int, input().split())
ans=d
if (k==2):
	if (k%2==0):
		ans*=2
else:
	if (d%4==2 and k%2==0):
		ans*=2
	while 1:
		tem=gcd(d, k)
		if (tem==1):
			break
		ans*=tem
		k//=tem
print(ans)
posted @ 2022-08-03 19:16  Administrator-09  阅读(5)  评论(0编辑  收藏  举报