CF1798C题解
首先考虑贪心,即为怎样能使价签数最小。
我们从前往后扫,判断我们扫到的下标是否能和前面的区间合并,这样的结果一定是最优的。
为什么?
因为我们每次把一个新数加入原有集合,就相当于对下一次加入这个集合的数加了“限制”(看了下文你自然会懂),我们若不按从前往后的顺序扫,那么这个数就会影响我下一个新的集合,所以不如从前往后扫更优。
接下来考虑怎么去扫。
如果想让两个 \(c1\),\(c2\) 相等,那么肯定要让 \(c1\),\(c2\) 分别除以 \(b1\),\(b2\) 的值为整数,即为 \(b1\),\(b2\) 的公倍数。显然我们知道若想合法则这个公倍数越小越好,也即是我们的 \(c\) 应为 \(b1\),\(b2\) 的最小公倍数。同时应该满足 \(a1\),\(a2\) 分别除以 $\frac{c}{b1} \(,\)\frac{c}{b2} $ 的值为整数。那么在从前往后扫的过程中,即为在 \(\forall i\in\left [l ,r\right ]\),$\gcd (a_{i}\times b_{i}) \operatorname{mod}\operatorname{lcm}b_{i} $ 的情况下,才存在一个相同的 \(c\) 值使其合法。

浙公网安备 33010602011771号