荒岛野人 题解

Statement

\(n(\le15)\) 个野人,第 \(i\) 个野人的寿命是 \(L_i(\le10^6)\) 年。荒岛上有 \(m\) 个山洞排列成一个环,但你不知道 \(m\) 到底是多少。第 \(i\) 个野人第一年会从第一个山洞开始往后数 \(C_i\) 个住下来,此后每一年都会往后数 \(P_i\) 个山洞住下来。已知不会发生某一年两个野人住在同一个山洞的情况,问 \(m\) 最小是多少。保证 \(m\le10^6\)

Solution

翻译题意:寻找最小的 \(m\),使得对于任意 \(k\),满足所有 \((1+C_i+P_ik)\bmod m\) 互不相同,其中 \(k+1\le L_i\)

\(m\) 不符合,则存在 \(i,j,k\) 满足 \(P_ik+C_i+1\equiv P_jk+C_j+1\pmod m\)

\((P_i-P_j)k\equiv(C_j-C_i)\pmod m\) 有解且最小的解 \(k\le\min(L_i,L_j)-1\)

由于 \(m\le10^6\),所以直接枚举 \(m\),用上面的条件判断 \(m\) 是否合法即可,\(\mathcal O(1e8)=\mathcal O(\)能过\()\)

posted @ 2024-04-20 21:23  Laijinyi  阅读(7)  评论(0编辑  收藏  举报