荒島野人 題解

Laijinyi發表於2024-04-20

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(\)能過\()\)

相關文章