D. 彩虹求和

    传统题 1000ms 256MiB

彩虹求和

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

彩虹求和

题目描述

给定一个长度为 nn 的整数数组 a1,a2,,ana_1,a_2,\dots,a_n

现在有 qq 次查询,每次给定一个区间 [l,r][l,r],你需要计算这个区间的 拱形加权和

设区间内的元素依次为:

al,al+1,al+2,,ara_l, a_{l+1}, a_{l+2}, \dots, a_r

对于这个区间中的第 11 个数、第 22 个数、第 33 个数……,它们的系数依次为:

1,2,3,1,2,3,\dots

而当走到区间右半部分时,系数开始递减,因此整个系数序列呈“拱形”。

形式化地,设区间长度为:

m=rl+1m=r-l+1

那么第 ii 个位置(从 00 开始计)的系数为:

min(i+1, mi)\min(i+1,\ m-i)

因此该区间的答案为:

i=0m1min(i+1, mi)al+i\sum_{i=0}^{m-1} \min(i+1,\ m-i)\cdot a_{l+i}

你需要回答每次查询的结果。

输入格式

第一行输入两个整数 n(1n2×105)n(1\leq n\leq2\times10^5) ,q(1q2×105),q(1\leq q\leq2\times10^5),表示数组长度和查询次数。

第二行输入 nn 个整数 a1,a2,,an(1ai106)a_1,a_2,\dots,a_n(1\leq a_i\leq 10^6),表示数组中的元素。

接下来 qq 行,每行输入两个整数 l,r(1lrn)l,r(1\leq l\leq r\leq n),表示一次查询区间。

输出格式

对于每次查询,输出一行一个整数,表示对应区间的拱形加权和。

输入输出样例 #1

输入 #1

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

输出 #1

27
12
3

【睿爸信奥】入门组算法周赛(20260322)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-3-22 0:00
结束于
2026-3-27 20:00
持续时间
4 小时
主持人
参赛人数
8