B. 区间求和

    远端评测题 1000ms 512MiB

区间求和

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

Carol 最近正在学习前缀和:给定序列 a1∼na_{1\sim n} 与 qq 次询问,每次询问给出 l,rl,r,求 al∼ra_{l\sim r} 的和。这样的问题对 Carol 来说已经太简单了,他发现交换一些序列 aa 中的元素的值可以改变询问的结果。

面对这个发现,他提出了一个新的问题:给定序列 a1∼na_{1\sim n} 与 qq 次询问,每次询问给出 l,rl,r,如果可以在执行询问前任意次交换 aa 中两个元素的位置得到 a1∼n′a'_{1\sim n},所有询问的答案之和最大是多少?一次询问的答案指的是 al∼r′a'_{l\sim r} 的和。

需要注意的是,Carol 只能在开始询问前交换元素,然后求出所有询问的答案之和。

输入格式

第一行一个整数 TT 表示数据组数,对于每组数据:

第一行两个整数 n,qn,q。

第二行 nn 个整数 a1∼na_{1\sim n}。

接下来 qq 行,第 ii 行两个整数 li,ril_i,r_i 表示第 ii 次询问的参数。

输出格式

对于每组数据,输出一行一个答案表示最大的询问答案之和。

2
5 2
1 2 3 4 5
1 4
2 3
2 3
1 1
1 1
1 2
2 2
23
4

样例解释 1

样例解释:对于第一组数据,把a变为2 4 5 3 1即可得到答案之和为23,可以验证没有更大的答案之和。

数据范围

对于 30%30\% 的数据,1≤T≤101\leq T\leq 10,1≤n,q≤101\leq n,q\leq 10。

对于 60%60\% 的数据,1≤T≤101\leq T\leq 10,1≤n,q≤10001\leq n,q\leq 1000。

对于 100%100\% 的数据,1≤T≤1041\leq T\leq 10^4,1≤n,∑n≤2×1051\leq n,\sum n\leq 2\times 10^5,1≤q,∑q≤2×1051\leq q,\sum q\leq 2\times 10^5,1≤ai≤1051\leq a_i\leq 10^5,1≤l≤r≤n1\leq l\leq r\leq n。

[Engeeker周赛 Div2] 20250509

未参加
状态
已结束
规则
乐多
题目
2
开始于
2025-5-9 0:00
结束于
2025-5-12 0:00
持续时间
1 小时
主持人
参赛人数
0