树状数组laekov
lowbit
数组的第 i 位存储的是以 i 为结尾的长度为lowbit(i) 的一段的和.

int lowBit(x) {
return x & -x;
}
加点
int n, bt[maxn];
void btAdd(int pos, int delta) {
for (; pos <= n; pos += lowBit(p)) {
bt[pos] += delta;
}
}
查询
int btSum(int pos) {
int ans = ;
for (; pos; pos -= lowBit(p)) {
ans += bt[p];
}
return ans;
}
完整代码
略有不同的,dad曾经教给我,树状数组这么写
//线段树练习1
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 100010
using namespace std;
int n,m,t[maxn];
void add(int k,int z)
{
while(k<=n)
{
t[k]+=z;
k+=k&(-k);
}
}
int find(int k)
{
int ans=;
while(k)
{
ans+=t[k];
k-=k&(-k);
}
return ans;
}
int main()
{
int i,j,k,x;
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",&x);
add(i,x);
}
scanf("%d",&m);
for(i=;i<=m;i++)
{
int x,y,z,w;
scanf("%d",&w);
scanf("%d%d",&x,&y);
if(w==)
add(x,y);
else if(w==)
printf("%d\n",find(y)-find(x-));
}
return ;
}
//线段树练习2
#include<iostream>
using namespace std;
int t[],n,m;
void add(int k,int z)
{
while(k<=n)
{
t[k]+=z;
k+=k&(-k);
}
}
int find(int a)
{
int ans=;
while(a)
{
ans+=t[a];
a-=a&(-a);
}
return ans;
}
int main()
{
int s;
cin>>n;
for(int i=;i<=n;i++)
cin>>s,
add(i,s);
cin>>m;
for(int i=;i<=m;i++)
{
int x,y,w,z;
cin>>w;
if(w==)
{
cin>>x;
cout<<find(x)-find(x-)<<endl;
}
if(w==)
{
cin>>x>>y>>z;
for(int j=x;j<=y;j++)
add(j,z);
}
}
}
树状数组laekov的更多相关文章
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2221 Solved: 1179[Submit][Sta ...
- bzoj1878--离线+树状数组
这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...
- codeforces 597C C. Subsequences(dp+树状数组)
题目链接: C. Subsequences time limit per test 1 second memory limit per test 256 megabytes input standar ...
- BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2545 Solved: 1419[Submit][Sta ...
- BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]
3529: [Sdoi2014]数表 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1399 Solved: 694[Submit][Status] ...
- BZOJ 3289: Mato的文件管理[莫队算法 树状数组]
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 2399 Solved: 988[Submit][Status][Di ...
- 【Codeforces163E】e-Government AC自动机fail树 + DFS序 + 树状数组
E. e-Government time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...
- 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序
3881: [Coci2015]Divljak Time Limit: 20 Sec Memory Limit: 768 MBSubmit: 508 Solved: 158[Submit][Sta ...
- 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)
题目链接 题意: 有n个点的一棵树.其中树上有m条已知的链,每条链有一个权值.从中选出任意个不相交的链使得链的权值和最大. 思路: 树形DP.设dp[i]表示i的子树下的最优权值和,sum[i]表示不 ...
随机推荐
- 7-6 公路村村通(30 分) 【prime】
7-6 公路村村通(30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤10 ...
- Matlab图像处理(03)-基本概念
概念定义 动态范围:灰度跨跃的值域称为动态范围.上限取决于饱和度,下限取决于噪声. 对比度:一幅图像中最高和最低灰度级间的灰度差. 空间分辨率:图像中可辨别的最小细节的度量.常用度量每单位距离线对数和 ...
- 在datax之前版本中添加filewriter并创建job时出现问题
问题描述:
- tkinter之对话框
对话框的一个例子: from tkinter.dialog import * from tkinter import * def investigation(): d=Dialog(None,titl ...
- apache-tomcat 及对应eclipse下载地址for mac
tomcat 7.0.42http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.zip ...
- python3 - 商品管理的程序,商品信息都存在一个json串里面
商品管理的程序,商品信息都存在一个json串里面 1.查询商品信息 #校验商品是否存在 2.新增商品 # #校验商品是否存在 #校验价格是否合法 3.修改商品信息 ##校验商品是否存在 if chic ...
- 清除float浮动三种方式
Float的作用? w3c的官方解释: Content flows down the right side of a left-floated box and down the left side o ...
- 改善C#程序的建议10:用Parallel简化Task
在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作.Parallel主要提供了3个有用的方法:For.ForEach.Invoke ...
- Eclipse_插件_03_反编译插件_Eclipse Class Decompiler
一.插件优势 此插件比jd-eclipse更加强大,反编译之后不会像jd-eclipse一样出现注释符号. 二.插件下载地址 1.github https://github.com/cnfree/Ec ...
- UOJ_21_【UR #1】缩进优化_数学
UOJ_21_[UR #1]缩进优化_数学 题面:http://uoj.ac/problem/21 最小化$\sum\limits{i=1}^{n}a[i]/x+a[i]\;mod\;x$ =$\su ...