解题思路
设整条流水线总节拍的质因数分解为 LCM(a1,…,an)=∏ppEp,其中 Ep=maxivp(ai)。一段连续工序的 LCM 等于总节拍,当且仅当对每个质数 p,该段中至少有一个位置的 p 指数达到 Ep。
于是转化为:每个质数 p 对应一类“必须命中”的位置,求最短窗口覆盖全部类别。做法如下:
- 筛出不超过 109=31623 的质数,对每个 ai 做质因数分解(相同数值缓存)。
- 统计每个质数的最大指数 Ep。
- 给每个位置打标签:若该位置上某质数 p 的指数恰好等于 Ep,则覆盖了需求 p。