#loj5731. 「NOISG 2026 Final」Gemstones

「NOISG 2026 Final」Gemstones

#5731. 「NOISG 2026 Final」Gemstones

标签: 传统 | 时间限制: 2000 ms | 内存限制: 1024 MiB |

题目描述

译自 NOISG 2026 Final T4. Gemstones

你正在玩一款益智游戏,游戏中有 nn 颗排成一排的宝石,从左到右编号为 11nn。第 ii 颗宝石的颜色为 c[i]c[i]

在任何时刻,你都可以选择两颗颜色相同的相邻宝石并将其删除。随后,两边的宝石会向中间滑动以填补空隙,这可能会产生新的相邻同色宝石对。

你将面对 qq 个独立的情景。在第 jj 个情景中,你只考虑从第 l[j]l[j] 颗到第 r[j]r[j] 颗的宝石。假设你执行了最优的删除序列,请问最后剩下的宝石最少是多少颗?

输入格式

第一行包含两个以空格分隔的整数 nnqq

第二行包含 nn 个以空格分隔的整数 c[1],c[2],,c[n]c[1], c[2], \ldots, c[n]

接下来的 qq 行,每行包含两个以空格分隔的整数。其中第 ii 行包含 l[i]l[i]r[i]r[i]

输出格式

输出应包含 qq 行。其中第 ii 行应包含一个整数,即第 ii 个情景的答案。

样例 1

输入

8 4
3 3 3 2 2 3 4 7
1 3
3 6
1 7
5 8

输出

1
0
1
4

n=8n=8 颗宝石如下图所示。

在第一个情景中,只需考虑前三颗宝石。删除任何两颗相邻的同色宝石后都会剩下一颗宝石,之后无法再进行任何删除。因此,答案是 11

在第二个情景中,可以按以下方式删除宝石,不留下任何宝石:

在第三个情景中,可以按以下方式删除宝石,剩下一颗宝石:

在第四个情景中,无法删除任何宝石。因此,答案是 44

此样例满足子任务 3,7,83,7,899 的限制。

样例 2

输入

6 3
2 1 1 2 2 1
1 6
1 4
3 6

输出

2
0
0

此样例满足子任务 3,6,7,83,6,7,899 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 1n1061 \leq n \leq 10^6
  • 0q5000000 \leq q \leq 500000
  • 对于所有 1in1 \leq i \leq n1c[i]1091 \leq c[i] \leq 10^9
  • 对于所有 1jq1 \leq j \leq q1l[j]r[j]n1 \leq l[j] \leq r[j] \leq n

详细子任务附加限制及分值如下表所示:

子任务 分值 附加限制
11 22 c[1]=c[2]==c[n]c[1]=c[2]=\cdots=c[n]
22 55 相同颜色的宝石形成连续的子段(即若 c[i]=c[j]c[i]=c[j]i<ji<j,则满足 c[i]=c[i+1]==c[j]c[i]=c[i+1]=\cdots=c[j]
33 99 n,q2000n, q \leq 2000
44 44 对于所有 1jq1 \leq j \leq q,满足 l[j]=1l[j]=1
55 88 每种颜色的宝石恰好只有两颗
66 1616 对于所有 1in1 \leq i \leq n,满足 c[i]2c[i] \leq 2
77 1818 n,q100000n, q \leq 100000
88 1515 n,q300000n, q \leq 300000
99 2323 无附加限制