模拟赛
T1
非常简单的构造,但是我忘了判断 $m=2$ 和对只有一个点特判的输出错误,导致挂成 $20$。
具体思路,考虑欧拉路径只能有两个奇点,但是每条边上中间的都是奇点,所以我们需要删掉边缘的一些边,直到剩下两个奇点,然后对于 $n,m$ 都是偶数,或者一个偶数一个奇数,或者两个都是奇数来分别构造。
代码:
1 |
|
T2
wym 的做法非常巧妙。首先信息是非常多的,我们考虑一个信息对应一个结果,我们直接枚举毒药位置,然后暴力枚举哪只老鼠是在哪一轮死的,我们只需要保证,毒药位置不同,老鼠的死亡轮数序列也不同,然后对于每一轮,我们按照这个序列去给老鼠喂药。
正确性:设 $x$ 是毒药,那么 $x$ 对应的老鼠死亡序列一定是符合的,而一个老鼠只能在一局内死亡,或者不死亡,而任意两个不同位置的毒药序列不同,所以其它毒药序列一定是不符合的。
1 |
|
T3
推式子题,除掉 $p$ 的倍数的情况,我们根据费马小定理,原问题等价为有多少个 $a,b,c,d$ 满足 $a^b\equiv c^d$,其中 $1\le a,b,c,d\le p-1$,指数显然是这个取值范围,而底数不取 $0$ 是因为我们去掉整除的情况。指数难以处理,利用原根,我们可以得到 $ab\equiv cd \bmod p-1$,设 $f(m)$ 表示为 有多少 $a,b,c,d$ 满足 $ab\equiv cd\mod m$,同时利用中国剩余定理的唯一性,我们也可以证明 $f(x)$ 是积性的。所以我们现在需要考虑如何求出 $f(p^e)$ 即可。设 $c(t)$ 表示有多少个 $a,b$ 满足 $ab\equiv t \bmod m$,所以我们可以得到 $f(p^e)=\sum\limits_{i=0}^{p^e-1} c^2(t)$。设 $a=Ap^\alpha,b=Bp^\beta,t=Tp^\theta$,由 $ab\equiv t$ 我们可以得到 $\alpha+\beta=\theta,AB=T \bmod p^{e-\theta}$,前者答案是 $\theta +1$,后者当 $A,B,T$ 都取在 $[1,p^{e-theta})$ 时解得数量为 $\phi^2(p^{e-\theta})$,但是 $A$ 的取值范围应该是 $[1,p^{e-\alpha})$,所以还需要乘上 $p^{\theta-\alpha}$,$B$ 同理。把这些都乘起来,待会和式,化简,可以得到一个非常简单的式子:
$$
f(p^e)=p^{2e-1}(p^e(p+1)-1)
$$
分解质因数即可。
代码:
1 |
|