#P13903. 「KFCOI Round #2」卡常题

    ID: 15540 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>贪心O2优化前缀和差分洛谷比赛

「KFCOI Round #2」卡常题

题目背景

由于「神」被卡常了,于是决定卡卡别人。

题目描述

现在「神」出了一道数据结构题。

给你一个长度为 nn 的整数序列 aa,并保证 i[1,n],ai[1,m]\forall i\in[1,n],a_i\in[1,m]。 你需要使用 odt 进行 qq 次神奇的操作,每次操作的对象是 [li,ri][l_i,r_i]

众所周知,odt 的时间复杂度是基于区间颜色段数量的,不妨假设每次操作的复杂度为区间极长连续相同颜色段的数量,即对于 [l,r][l,r],其复杂度为 1+i=l+1r[ai1ai]1+\sum_{i=l+1}^r[a_{i-1}\neq a_i],其中的“ [ ][\ ] ”为艾弗森括号

由于「神」喜欢卡常,作为数据制作人的你希望能够让所有 odt 操作的复杂度之和尽可能地大,因此你决定把「神」给你的序列中 kk 个元素改为 [1,m][1,m] 中的某几个数。

当然,「神」想要知道你能把 odt 卡成什么样子。你需要对于每个 k[0,T]k\in[0,T],给出更改后其所有操作的复杂度之和的最大值。

输入格式

第一行 44 个整数 n,m,T,qn,m,T,q。 第二行 nn 个整数,第 ii 个整数为 aia_i。 接下来 qq 行,每行 22 个整数 li,ril_i,r_i

输出格式

T+1T+1 行,第 ii 行为 k=i1k=i-1 时的答案。

11 3 3 4
1 1 2 1 2 3 1 1 1 2 2
2 6
3 11
5 9
8 11

16
21
23
23
4 3 2 1
2 2 2 2
1 3

1
3
3

提示

样例 1 解释

k=0k=0 时,所有操作的复杂度之和最大为 5+6+3+2=165+6+3+2=16
k=1k=1 时,修改 a83a_8\leftarrow 3 是一种最优的方案,此时的答案为 5+8+5+3=215+8+5+3=21
k=2k=2 时,修改 a111,a82a_{11}\leftarrow 1,a_{8}\leftarrow 2 是一种最优的方案,此时的答案为 5+9+5+4=235+9+5+4=23

数据范围

本题采用捆绑测试。

  • Subtask 1(15 pts):n,q10n,q\le 10m=3m=3
  • Subtask 2(5 pts):i[2,n],aiai1\forall i\in[2,n],a_i\neq a_{i-1}
  • Subtask 3(10 pts):T=0T=0
  • Subtask 4(30 pts):n5000n\le 5000
  • Subtask 5(10 pts):i[2,n],ai=ai1\forall i\in[2,n],a_i= a_{i-1}
  • Subtask 6(30 pts):无特殊限制。

对于所有数据,1n,q2×1051\le n,q\le 2\times 10^50Tn0\le T\le n3m2×1053\le m\le2\times 10^51aim1\le a_i\le m1lirin1\le l_i\le r_i\le n