#P14840. [THUPC 2026 初赛] 宝石分组

[THUPC 2026 初赛] 宝石分组

题目背景

来自 2026 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2026)初赛。

题解等资源可在 https://gitlink.org.cn/thusaa/thupc2026pre 查看。

题目描述

收藏家小蓝有 nn 个宝石,其中第 ii 个宝石的亮度为 aia_i,现在小蓝想把这些宝石分为若干个组,满足每个宝石恰好被分在一个组中。

对于一组宝石,若该组内有 kk 个宝石,其亮度分别为 b1,b2,,bkb_1, b_2, \dots, b_k,则小蓝认为这组宝石的美观值为 (i=1kbi)2k2\frac{(\sum_{i=1}^k b_i)^2}{k^2}。对于一组宝石的分组方案,小蓝认为其美观度为所有组的美观值之和

现在小蓝有 qq 个问题,每个问题形如若要求在分组时每组宝石中的宝石的个数在 [l,r][l, r] 之间,则对于所有符合要求的分组方案,其美观度可以达到的最大值是多少。

由于答案可能是一个很大的分数 ab\frac a b,为了方便输出,您只需要回答它对 109+710^9 + 7 取 模的结果,即您需要求出一个在 [0,109+7)[0, 10^9 + 7) 之间的整数 cc 使得 abc(mod109+7)a \equiv bc \pmod {10^9 + 7},可 以证明在本题的限制条件下,总存在符合条件的 cc,且符合条件的 cc 唯一。

特别的,如果不存在符合要求的分组方案,请输出 1-1

输入格式

第一行输入两个正整数 n,q( 1n,q5×105)n, q(~1 \leq n, q \leq 5 \times 10^5),表示宝石总个数与问题个数。
第二行输入 nn 个非负整数,其中第 ii 个非负整数表示第 ii 个宝石的亮度 ai (0ai108)a_i~(0 \leq a_i \leq 10^8)
接下来 qq 行,每行两个正整数 l,r (1lrn)l, r~(1 \le l \le r \le n),表示若要求在分组时若每组宝石的个数在 [l,r][l, r] 之间,对于所有符合要求的分组方案,其美观度可以达到的最大值。

输出格式

输出共 qq 行,其中第 ii 行包含一个整数,表示第 ii 个问题的答案,即当要求每组宝石的个数在第 ii 个问题给出的区间之内时,所有符合要求的分组方案的美观度可以达到的最大值对 109+710^9 + 7 取模的结果。特别的,如果不存在符合要求的分组方案,请输出 1−1

6 4
13 9 7 5 6 10
1 5
4 6
2 3
4 4

460
444444517
500000230
-1

提示

样例 1 解释

对于第一个问题,最优的分组方案为每个宝石各分配到一个单独的组中,即 {13},{9},{7},{5},{6},{10}\{13\}, \{9\}, \{7\}, \{5\}, \{6\}, \{10\},此时美观值为 460460,取到最大值。
对于第二个问题,仅存在唯一的分组方案 {13,9,7,5,6,10}\{13, 9, 7, 5, 6, 10\},此时美观值取到最大 值 6259\frac{625}{9},对 109+710^9 + 7 取模的结果为 444444517444444517
对于第三个问题,最优的分组方案为 {13,10},{9,7},{5,6}\{13, 10\}, \{9, 7\}, \{5, 6\},此时美观值取到最大值 4532\frac{453}{2} ,对 109+710^9 + 7 取模的结果为 500000230500000230
对于第四个问题,要求每个组的大小必须为 44,而宝石总数 66 不是 44 的倍数,故在分组时总会存在一些剩余的宝石无法分组,因此不存在符合条件的分组方案,所以输出 1−1