树状数组
Huglight
这个作者很懒,什么都没留下…
展开
-
XDU暑训2019 Day6 LibreOJ 130 树状数组
题意:单点更改,给定一个序列,有2种操作,操作1向序列中某个位置加一个值,操作2求给定区间内序列值的和思路:树状数组模版题,sum[i]=sum[i-lowbit(i)]+c[i],更改时从底向上更新c[i]中的值。#include<bits/stdc++.h>#define lowbit(x) (x&-x)using namespace std;typedef lo...原创 2019-07-08 13:32:29 · 127 阅读 · 0 评论 -
XDU暑训2019 Day6 LibreOJ 131 树状数组
题意:给一个序列,有两种操作:操作1对给定区间内值加x,操作2求序列某点值思路:取一个差分数组b[i]=a[i]-a[i-1],则b中i的前缀和表示a[i]中i点的值,故由区间修改单点查询转化为了区间查询单点修改,区间修改时使用差分add(l, x)和add(r+1, -x),查询某点值时直接求sum就行#include<cstdio>#include<cstring>...原创 2019-07-08 16:37:33 · 141 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers 树状数组
题意:给一串序列,有两种操作:在给定区间每个数加上x;求出给定区间和值思路:区间修改,区间查询。在差分数组的基础上多维护一个数组,可用数学证明推出差分数组和值和原来的数组和值之间的关系,设差分数组为b[i],另一数组为d[i],则d[i]=b[i]*(i-1),求x之前元素和变为sum(x)=x * ∑b(1~x)-∑d(1 ~x)#include<iostream>#inclu...原创 2019-08-14 17:24:10 · 119 阅读 · 0 评论 -
HDU 1166 敌兵布阵 树状数组
题意:给一串序列,可以进行3种操作:对某个点i的值增加j;对某个点i的值减少j;查询区间(i, j)的子串和思路:单点修改,区间查询,典型树状数组题目#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<vector>#inclu...原创 2019-08-12 19:22:21 · 123 阅读 · 0 评论