设整条流水线总节拍的质因数分解为 LCM(a1,…,an)=∏ppEp,其中 Ep=maxivp(ai)。一段连续工序的 LCM 等于总节拍,当且仅当对每个质数 p,该段中至少有一个位置的 p 指数达到 Ep。
于是转化为:每个质数 p 对应一类“必须命中”的位置,求最短窗口覆盖全部类别。做法如下:
一条流水线上依次排列 n 道工序,第 i 道工序的节拍长度为正整数 ai。整条流水线的总节拍定义为所有 ai 的最小公倍数(LCM)。
你需要找出一段连续工序,使其节拍的 LCM 等于整条流水线的总节拍,并且这段工序尽可能短。输出满足条件的最短连续段长度。
一段连续工序是指下标连续的若干道工序(可以只含一道,也可以包含全部)。若干正整数的最小公倍数是能被它们都整除的最小正整数;单个数的 LCM 就是它本身。
约束:测试组数不超过 10^4,单组工序数不超过 10^5,各工序节拍不超过 10^9,且单个文件中所有组的工序数之和不超过 10^5。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.