二阶

\[\sum_{i=l}^{r} \sum^{i}_{j=1} a_j
\]
\[=\sum_{i=l}^{r} (r-i+1) a_i
\]
\[=(r+1)\sum_{i=l}^{r} a_i+\sum_{i=l}^{r} i \cdot a_i
\]

这个很好理解,因为对于第 \(i\) 个数,他加了 \((r-i+1)\) 次

三阶

正常拆解

\[\sum_{i=l}^{r} \sum^{i}_{j=1} \sum_{k=1}^{j} a_k
\]
\[=\sum_{i=l}^{r} \sum_{j=1}^{i} (i-j+1) a_j
\]
\[=\sum_{i=l}^{r} {\Large (}(i+1) \cdot \sum_{j=1}^{i} a_j - \sum_{j=1}^{i} j \cdot a_j{\Large )}
\]
\[=\sum_{i=l}^{r} {\Large (} (i+1) \cdot \sum_{j=1}^{i} a_j {\Large )} - \sum_{i=l}^{r} \sum_{j=1}^{i} j \cdot a_j
\]

直接拆开可得(可用数学归纳法):

\[\sum^{r}_{i=l} \frac{(r-i+1)(r+i+2)}{2} a_i - \sum_{i=l}^{r} i \cdot (r-i+1) a_i
\]

合并,得:

\[\sum^{r}_{i=l} \frac{(r-i+1)(r-i+2)}{2} a_i
\]

展开,得:

\[\sum^{r}_{i=l} \frac{r^2+i^2-2ri-3i+2}{2} a_i
\]

即:

\[\frac{1}{2}\sum^{r}_{i=l} i^2 \cdot a_i -\frac{2r+3}{2} \sum^{r}_{i=l} i \cdot a_i + \frac{r^2+2}{2}\sum^{r}_{i=l} a_i
\]

即维护 \(\sum^{r}_{i=l} i^2 \cdot a_i\),\(\sum^{r}_{i=l} i \cdot a_i\),\(\sum^{r}_{i=l} a_i\) 即可

另一种方法

\[b_i=\sum_{j=1}^i a_j
\]

然后原式化为:

\[\sum_{i=l}^{r} \sum^{i}_{j=1} b_j
\]

同2阶,展开:

\[(r+1) \cdot \sum_{i=l}^{r} b_i - \sum_{i=l}^{r} i \cdot b_i
\]

然后把

\[b_i=\sum_{j=1}^i a_j
\]

代入得:

\[(r+1) \cdot \sum_{i=l}^{r} \sum_{j=1}^i a_j - \sum_{i=l}^{r} i \cdot \sum_{j=1}^i a_j
\]

其中 \(\sum_{i=l}^{r} \sum_{j=1}^i a_j\) 是不是很眼熟!

展开得:

\[(r+1) \cdot \sum_{i=l}^{r} (r-i+1) a_i - \sum_{i=l}^{r} i \cdot (r-i+1) a_j
\]

然后就是同第一种方法得到答案啦!

n阶可以类推

n阶前缀和 の 拆解的更多相关文章

  1. LuoguP5488 差分与前缀和

    题意 给定一个长为\(n\)的序列\(a\),求出其\(k\)阶差分或前缀和.结果的每一项都需要对\(1004535809\)取模. 打表找规律 先看前缀和,设\(n=5\),\(k=4\),按照阶从 ...

  2. 前缀和的n个神奇操作

    前情回顾 前缀和的基础用法戳这里->传送门 众所周知,简单的前缀和解决的一般都是静态查询的问题,例如区间和.区间积等 操作的时候也很简单,就是根据需要来维护一个数组,每次查询的时候就用到tr[r ...

  3. 另一道不知道哪里来的FFT题

    给定一个序列,求出这个序列的k阶前缀和,模998244353,n<=1e5. k阶前缀和可以看成一个一个n*k的平面上的二维行走问题. 第i项对第j项的贡献是从(i,0)走到(j,k)的NE L ...

  4. loj#6261. 一个人的高三楼(NTT+组合数学)

    题面 传送门 题解 统计\(k\)阶前缀和,方法和这题一样 然后这里\(n\)比较大,那么把之前的柿子改写成 \[s_{j,k}=\sum_{i=1}^ja_i{j-i+k-1\choose j-i} ...

  5. CF223C【Partial Sums】(组合数学+乱搞)

    题面 传送门 题解 orz zzk 考虑这东西的组合意义 (图片来自zzk) \(a_i\)这个元素对\(k\)阶前缀和的第\(j\)个元素\(s_{k,j}\)的贡献就等于从\((0,i)\)走到\ ...

  6. JZOJ 5922. sequence

    5922. [NOIP2018模拟10.23]sequence (File IO): input:sequence.in output:sequence.out Time Limits: 1000 m ...

  7. [jzoj NOIP2018模拟10.23]

    丢分主要是下面几个方面: 1.T2代码交错了,有个特判没写丢了10分 2.T1线段树加等差数列写错了(其实二维差分就可以,但我当时不会) 3.T3思考再三还是为了10分写上了主席树,还是写错了 总体评 ...

  8. [NOIP2018模拟赛10.23]发呆报告

    闲扯 考场看了眼题目感觉很难,一个小时敲完了所有暴力...嗯然后就在那里发呆什么事也没做 T3考场上把数据结构想了个遍都不会完成1操作,现在看这种思路其实之前也接触过... 比较玄学的一件事情就是T1 ...

  9. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...

  10. FFT/NTT复习笔记&多项式&生成函数学习笔记Ⅰ

    众所周知,tzc 在 2019 年(12 月 31 日)就第一次开始接触多项式相关算法,可到 2021 年(1 月 1 日)才开始写这篇 blog. 感觉自己开了个大坑( 多项式 多项式乘法 好吧这个 ...

随机推荐

  1. VNC 远程桌面很卡,替代方案如下

    VNC 远程桌面是一款古老的远程桌面软件,是基于 Unix 和 Linux 操作系统的免费的开源软件.免费开源很好,但是 VNC 也存在一些缺点. 1.VNC 远程桌面很卡 想白嫖 VNC,就要接受卡 ...

  2. Scala集合flatten操作

    一层嵌套,但是flatten的要求需要List内部类型都一样, 例如都为List scala> List(List(1), List(2), List(3)).flatten res4: Lis ...

  3. AIRIOT答疑第1期 | 零开发基础也能干物联网平台项目?

    当然可以! 物联网低代码平台以零门槛.部署快.灵活性高.满足二次开发等特点,成为近两年来IOT服务的生力军.项目团队即使没有研发人员,也可以像拼乐高一样快速搭建物联网平台,功能全面,满足多数业务场景下 ...

  4. Java生成微信小程序码

    官网文档地址:获取小程序码 package test; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.cor ...

  5. 腾讯面试:如何提升Kafka吞吐量?

    Kafka 是一个分布式流处理平台和消息系统,用于构建实时数据管道和流应用.它最初由 LinkedIn 开发,后来成为 Apache 软件基金会的顶级项目. Kafka 特点是高吞吐量.分布式架构.支 ...

  6. swagger 的配置

    1,开启swagger : c.IncludeXmlComments(GetXmlCommentsPath()); protected static string GetXmlCommentsPath ...

  7. java 项目的创建

    新建一个  Spring Initializr

  8. Java交换map的key和value值

    在Java中,我们都知道直接交换Map的key和value是不被允许的,因为Map的接口设计是基于key-value对的,其中key是唯一的,并且是不可变的(在HashMap等常见的实现中,虽然key ...

  9. js 判断手机号格式

    大江东去,浪淘尽,千古风流人物.故垒西边,人道是,三国周郎赤壁.乱石穿空,惊涛拍岸,卷起千堆雪.江山如画,一时多少豪杰.遥想公瑾当年,小乔初嫁了,雄姿英发.羽扇纶巾,谈笑间,樯橹灰飞烟灭.故国神游,多 ...

  10. ETL工具-nifi干货系列 第十四讲 nifi处理器QueryDatabaseTableRecord查询表数据实战教程

    1.处理器QueryDatabaseTableRecord和处理器QueryDatabaseTable比较相似,该组件生成一个 SQL 查询,或者使用用户提供的语句,并执行它以获取所有在指定的最大值列 ...