高质量好题:ARC118D

link

完全想偏了

如果打算去根据建出来的图来找性质,那这题基本上就没法做了。

如果有解,考虑到对于一个数\(x\) ,它必然可以被表示成 \(a^{i}b^{j}\) 的形式。

那么我们令 \(i\in[0,n), j\in [0,m)\) ,满足 \(a^{n}=1\)\(b^{j}\not = a^{i}\)

可以发现对于这 \(n\times m\) 个数,它们都是互不相同的。


证明:

如果存在 \(a^{i_{1}}b^{j_{1}}=a^{i_{2}}b^{j_2},i_{1}>i_{2},j_{1}<j_{2}\) ,那么就有 \(a^{i_{1}-i_{2}}=b^{j_{2}-j_{1}}\),与\(b^{j}\not = a^{i}\) 矛盾。


那么可以发现,当且仅当 \(n\times m = P-1\) 的时候,才有可能有解。

那么题目就转换成了一个 \(n\times m\) 的网格,每次只能向右或者向下走,并且在边界处会走回开头( \((n-1,0)\rightarrow (0,0),(0,m-1)\rightarrow (0,0)\)

首先 \(n,m=1\) 的时候可以特判,不赘述了。

可以发现如果 \(n\) 是偶数,就可以先从 \((0,0)\) 走到 \((0,m)\) ,然后再从 \((0,m)\) 走到 \((1,0)\) ,最后再从 \((n-1,0)\) 往下走一位走回到 \((0,0)\)

否则,可以交换 \(a,b\) ,新得到的 \(n'\) 一定是偶数。


证明:

\(a=g^{A},b=g^{B}\) ,那么 \(A,B\) 中一定有一个数是奇数,否则无法表示出 \(g^{2k+1}\) , 也就是 \(\frac{P-1}{A},\frac{P-1}{B}\) 中一定有一个是偶数。


剩下的就是代码模拟上述过程了。

评测记录

posted @ 2021-08-11 20:10  krimson  阅读(97)  评论(0编辑  收藏  举报