
树状数组改段求段
在写这篇博客的时候在makedown上面写的,应该能编译
发布日期:2021-05-06 23:49:07
浏览次数:21
分类:技术文章
本文共 517 字,大约阅读时间需要 1 分钟。
前言
树状数组的话很早以前就学过了。。
一开始停留在改点求段上面。。 然后发现差分之后他还可以改段求点。。 其实在以前,我以为除了代码长度,这玩意被线段树完爆了。。 后来才发现有常数这个东西QAQ 于是昨天在~~参考~~Claris的代码的时候发现,这玩意居然可以改段求段。。做法
设原数组第i位的值为a[i],设d[i]=a[i]-a[i-1]
求a的前x位求和,就是这样子的: ∑i=1xa[i]=∑i=1x∑j=1id[j]
我们不妨可以变形一下,考虑每一个d对答案的贡献: ∑i=1xa[i]=∑i=1x(x−i+1)∗d[i]
我们可以拆项: ∑i=1xa[i]=∑i=1xx∗d[i]−∑i=1x(i−1)∗d[i]
很明显,前后两个东西我们是可以分开维护的。。 于是我们就可以开两个树状数组,一个维护d的前缀和,在查询的时候再乘上x。 另外一个维护(i-1)*d[i] 然后查询的时候就两个查一下,做个差就可以了 CODE:
#includeint main(){ printf("自己上网找,我这里没有"); return 0;}
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月16日 18时10分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
网关程序的开发
2019-03-04
SpringBoot(Spring IOC 和 Spring MVC)(待补充)
2019-03-04
变量命名的通用规则
2019-03-04
程序员职业划分
2019-03-04
MFC使用opencv在picture控件上面播放摄像头视频
2019-03-04
浪潮服务器电脑BOOST界面设置开机启动
2019-03-04
六祎-Photoshop快捷键
2019-03-04
【六袆-Java】哈希算法内存图;set集合低层采用哈希表存储元素;哈希算法的流程
2019-03-04
转---原码,反码,补码的深入理解与原理。
2019-03-04
浅谈C++ 标准库中的异常 —— stdexcept类
2019-03-04
【浅谈】main函数的三个参数
2019-03-04
函数指针
2019-03-04
Ubuntu安装软件以及查看已安装软件的几种方式
2019-03-04
ubuntu18.04利用fdisk找到磁盘空闲区,新建分区,挂载
2019-03-04
STL教程:C++ STL快速入门(非常详细)
2019-03-04
MySQL中索引与视图的用法与区别详解
2019-03-04
【论文泛读03】卷积LSTM网络:一种短时降雨量预测的机器学习方法
2019-03-04
中科大-凸优化 笔记(lec45)-强凸性等价不等式
2019-03-04
【论文泛读29】关系抽取:卷积神经网络的视角
2019-03-04