专栏文章

题解:CF763C Timofey and remoduling

CF763C题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miq843kt
此快照首次捕获于
2025/12/04 00:30
3 个月前
此快照最后确认于
2025/12/04 00:30
3 个月前
查看原文

题意

给出一个 nn 和一个质数 mm,以及一个长度为 nn,互不相同的 aa 序列,求是否存在一种 aa 的排列方式使得 aa 是一个 mod m\bmod\ m 意义下的等差数列。如果存在,输出任意一组可能的首项 xx 及公差 dd,否则输出 1-1

做法

下文假设 nmn\not=mn1n\not=1。记 pip_i 表示 aia_i 在对应等差数列的项数,fif_i 表示对应未取模等差数列的第 ii 项,即 fi=x+(i1)df_i=x+(i-1)d
t=a2a1,k=p2p1t=a_2-a_1,k=p_2-p_1,可以看出 tk×d(modm)t\equiv k\times d\pmod m
因为 kk 是多少跟后续处理没太大关系,考虑求出 kk 并解出公差。
如果这个等差数列不取模,易得其中满足 aiaj=k×da_i-a_j=k\times d(i,j)(i,j) 对数恰为 nkn-k 个,因为这个条件等价于 (i,j)(i,j) 在等差数列中相距 kk 个位置,直接统计即可得到 kk;但是因为已知的是取模后的序列,所以需要考虑一下什么时候结果会不一样:
存在 ii 使得 pikp_i\le k(即未取模时不存在对应的 jj 使得 aj=aik×da_j=a_i-k\times d),并且存在正整数 znpiz\le n-p_i 使得 aik×dfz+pi(modm)a_i-k\times d\equiv f_{z+p_i}\pmod m(即存在一个只是和对应值同余却不相等的数),又因为 dmd\perp m,所以 zz 如果存在,那么一定唯一。
所以出现错误的必要不充分条件是存在一组 (i,z)(i,z) 使得 aik×dfz+pi(modm)a_i-k\times d\equiv f_{z+p_i}\pmod m,把式子变形一下:
aik×dfz+pi(modm)aik×dai+z×d(modm)k×dz×d(modm)kz(modm)z+k0(modm)m(z+k)\begin{aligned} a_i-k\times d&\equiv f_{z+p_i}&\pmod m\\ a_i-k\times d&\equiv a_i+z\times d&\pmod m\\ -k\times d&\equiv z\times d&\pmod m\\ -k&\equiv z&\pmod m\\ z+k&\equiv0&\pmod m\\ m&\mid(z+k) \end{aligned}
因为 0z,kn10\le z,k\le n-1,所以当 m>2n2m>2n-2 的时候,可以直接使用相同的方法求 kk
考虑 m2n2m\le 2n-2 的时候怎么做:
注意到 ff 在模意义下有周期性,即:
对于 1i<jm1\le i<j\le m
i×d≢j×d(modm)x+i×d≢x+j×d(modm)fi≢fj(modm)\begin{aligned} i\times d&\not\equiv j\times d&\pmod m\\ x+i\times d&\not\equiv x+j\times d&\pmod m\\ f_i&\not\equiv f_j&\pmod m \end{aligned}
对于 1im1\le i\le m
i×di×d(modm)x+i×dx+(m+i)d(modm)fifm+i(modm)\begin{aligned} i\times d&\equiv i\times d&\pmod m\\ x+i\times d&\equiv x+(m+i)d&\pmod m\\ f_i&\equiv f_{m+i}&\pmod m \end{aligned}
这表明 f1fmf_1\sim f_m 在模意义下是一个 0m10\sim m-1 的排列,并且 ff 中所有相邻值连起来形成一个环,环上每个连续段都是合法的。注意到 aa 的合法性与 aa 相对于 [0,m)[0,m) 的补集的合法性相同,而取补集之后的序列长度 n=mnn^\prime=m-n,考虑它和 mm 的大小关系:
m2n2m2n+202(mn)+2m2n+2m2n2<m\begin{aligned} m&\le2n-2\\ m-2n+2&\le0\\ 2(m-n)+2&\le m\\ 2n^\prime+2&\le m\\ 2n^\prime-2&<m \end{aligned}
满足前文中直接统计方法的正确条件,可以直接按照补集处理套回去求 kk
根据已知的 kkk×dk\times d,可以直接求出 dd,然后找到唯一的一个 ii 使得 aa 中不存在 (aid+m)modm(a_i-d+m)\mod m,因为这和前文求 kk 部分的方式形式是一样的,所以若 aa 有解,满足条件的 ii 一定唯一,以它为首项即可。如果前面过程中取了补集,真正的首项只需要加一个 d×nd\times n^\prime,公差不变。

评论

0 条评论,欢迎与作者交流。

正在加载评论...