[NJUSC2025] qoj11549 题解

逆元本身的数值没有什么性质,因此应尽量规避对于分母真实数值的考虑,因此先把分母固定掉。考虑找到一组数列 \(\{g_i\}\),长度为 \(m\),使得 \(g_i\) 两两互质,令 \(L=\prod g_i\),要求 \(L\ge p\)。考虑对于 \(g_i\to g_i\times 2^k\),这样可以将分子为 \(1\) 的限制去除掉。将问题转化为构造数列 \(0\leq a_i<64\) 使得 \(\sum\frac{a_i}{64g_i}\equiv x\)\(\sum \frac{a_i}{g_i}\equiv\frac{L\times 64x}{L}\)

考虑解决这样的子问题,给定一个 \(k\),求出数列 \(a\) 使得 \(0\leq a_i<g_i\) 且满足 \(\sum\frac{L}{g_i}a_i\equiv k\pmod L\)。对于所有 \(g_i\),将每个位置都对 \(g_i\) 取模,此时并非 \(i\) 的位置都是 \(0\),此时求 \(\frac{L}{g_i}\) 在模 \(g_i\) 意义下的逆元 \(I\),那么 \(a_i=k\times I\bmod g_i\)。CRT 告诉我们这个是双射,总可以构造出。

此时找到的这组解满足 \(\sum \frac{a_i}{g_i}=c+\frac{b}{L}\),其中 \(c\in\mathbb Z\cap[0,m)\),且 \(b\in[0,L)\)。指定 \(b\) 是无法控制 \(c\) 的取值的。令 \(\sum\frac{L}{g_i}a_i\) 的目标值模 \(p\)\(k\),此时令 \(b=(k-mL)\bmod p\) 即可,后续只有在两边同时加上一个常数。最终构造可以令 \(g=\{3,5,7,11,13,17,19,23,29,31,37,41,43,47\}\),满足 \(L\ge p\),此时 \(m=14\),构造出的 \(|S|\) 上界为 \(\lceil\log_2m\rceil+\sum\lceil\log_2 g_i\rceil\),远远卡不满 \(\max S=150\) 的限制。

posted on 2026-01-29 20:11  nullptr_qwq  阅读(0)  评论(0)    收藏  举报