题解:AT_abc428_f [ABC428F] Pyramid Alignment
FiraCode
·
·
题解
考虑两种操作,左端点要么是变成一个数,要么是变成一个数剪掉长度。
所以考虑设左端点都为 a + b \cdot len,其中 len 为线段长度。
然后我们把 a, b 相同的分为一类,然后每一类对应一个区间。
那么每次修改就把在 1 \sim v 中的区间和 v + 1 \sim n 的区间分裂开,然后将在 1 \sim v 的区间都删除,并修改成对应的 a + b \cdot len。
然后显然左右端点都有单调性,直接二分即可找出合法区间。