AT_abc320_g [ABC320G] Slot Strategy 2 (Hard)

题目描述

[problemUrl]: https://atcoder.jp/contests/abc320/tasks/abc320_g > 本题是 C 问题的加强版。转盘的数量从 $3$ 个增加到了 $N$ 个,$M$ 的上限也变大了。 有一个由 $N$ 个转盘组成的老虎机。 第 $i$ 个转盘的排列由字符串 $S_i$ 表示,这里 $S_i$ 是一个仅由数字组成、长度为 $M$ 的字符串。 每个转盘上都配有一个对应的按钮。高桥君可以在每个非负整数 $t$ 秒时,选择按下一个按钮,或者什么都不做。 如果在老虎机开始转动后第 $t$ 秒按下第 $i$ 个转盘对应的按钮,则第 $i$ 个转盘会显示 $S_i$ 的第 $(t \bmod M) + 1$ 个字符并停止转动。 其中,$t \bmod M$ 表示 $t$ 除以 $M$ 的余数。 高桥君希望在所有转盘都停止后,显示的字符全部相同。 请你求出,为了达成目标,最少需要多少秒才能让所有转盘都停止且显示相同的字符。 如果无法做到,请输出相应的信息。

输入格式

输入按以下格式从标准输入读入。 > $N$ $M$ > $S_1$ > $\vdots$ > $S_N$

输出格式

如果无法让所有转盘都停止且显示相同的字符,则输出 `-1`。 如果可以做到,输出从老虎机开始转动到达成该状态所需的最小秒数。

说明/提示

### 限制条件 - $1 \leq N \leq 100$ - $1 \leq M \leq 10^5$ - $N, M$ 均为整数 - $S_i$ 是仅由数字组成、长度为 $M$ 的字符串 ### 样例解释 1 高桥君可以如下停止各个转盘,使得在老虎机开始转动后第 $6$ 秒时,所有转盘显示的字符都为 `8`。 - 在老虎机开始转动后第 $0$ 秒按下第 $2$ 个转盘的按钮,第 $2$ 个转盘会显示 $S_2$ 的第 $(0 \bmod 10)+1=1$ 个字符,即 `8`,并停止转动。 - 在老虎机开始转动后第 $2$ 秒按下第 $3$ 个转盘的按钮,第 $3$ 个转盘会显示 $S_3$ 的第 $(2 \bmod 10)+1=3$ 个字符,即 `8`,并停止转动。 - 在老虎机开始转动后第 $6$ 秒按下第 $1$ 个转盘的按钮,第 $1$ 个转盘会显示 $S_1$ 的第 $(6 \bmod 10)+1=7$ 个字符,即 `8`,并停止转动。 由于无法在 $5$ 秒及以内让所有转盘显示相同字符,因此输出 $6$。 ### 样例解释 2 请注意,必须在所有转盘都停止后,且显示的字符全部相同。 ### 样例解释 3 无法让所有转盘都停止且显示相同的字符。在这种情况下,请输出 `-1`。 由 ChatGPT 4.1 翻译