这道题的正解是线段树,但是我们用朴素解法模拟也能在考试时拿到一定的分数。
带子长度是 A,一开始第 k 格的颜色就是编号 k。一次覆写把闭区间 [P,Q] 全部改成颜色 W,然后从左到右扫一遍,相邻颜色相同就接成一段,记下最长的那段。覆写按输入顺序做,B 次都做完后每次各输出一个长度。
格子数和覆写次数都到 2×105 时,每次都把整条带子重扫一遍会超时,所以后面改用线段树。
现有一条带子,长度记作 A。开始的时候,带子上每个格子的颜色都不一样。
随后要按给定顺序做 B 次覆写。每一次指定一个闭区间 [P,Q],把其中每个格子都改成颜色 W。
如果从第 U 格到第 V 格这一段里,格子的颜色完全一致,就把 [U,V] 叫做一条同色段。
每当一次覆写做完,都要汇报此刻整条带子上同色段的最大长度。
开始时,第 k 格的颜色等于它自己的编号 k,k 从 1 取到 A。
每次覆写给出三个整数 P、Q、W,含义是把闭区间 [P,Q] 里的颜色统一写成 W。
数据范围:
共写出 B 行。第 k 行一个整数,表示第 k 次覆写完成之后,同色段的最大长度。
输入
7 4
3 5 2
6 7 2
1 1 2
4 4 8
输出
4
6
7
3
说明
开始时颜色依次是 1,2,3,4,5,6,7。
输入
4 2
2 3 6
1 4 6
输出
2
4
说明
开始时颜色是 1,2,3,4。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册