博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【模板】树状数组1
阅读量:4618 次
发布时间:2019-06-09

本文共 1305 字,大约阅读时间需要 4 分钟。

  • 基本介绍
  • 模板题目
  • 代码实现

基本介绍

这篇是树状数组模板1 主要内容有:

1.将某数加上x
2.求某区间和
也就是说支持单点修改

模板题目

见基本介绍

代码实现

#include
#include
#include
using namespace std; #define in = read() typedef long long ll; const ll size = 1000000 + 100; ll n,m,x,y,z; ll a[size],c[size];inline ll read(){ ll num = 0 , f = 1; char ch = getchar(); while(!isdigit(ch)){ if(ch == '-') f = -1; ch = getchar(); } while(isdigit(ch)){ num = num*10 + ch - '0'; ch = getchar(); } return num*f;}inline ll lowbit(ll x){ return x&-x;}inline ll sum(ll x){ ll ans = 0; while(x){ ans += c[x]; x -= lowbit(x); } return ans;;}inline void add(ll x,ll y){ while(x <= n){ c[x] += y; x += lowbit(x); }}int main(){ n in; m in; for(int i=1;i<=n;i++){ a[i] in; add(i,a[i]); } for(int i=1;i<=m;i++){ z in; x in; y in; if(z == 1) add(x,y); if(z == 2) printf("%d\n",sum(y) - sum(x - 1)); }}//COYG

转载于:https://www.cnblogs.com/ars4me/p/7536172.html

你可能感兴趣的文章
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
Python中Selenium的使用方法
查看>>
三月23日测试Fiddler
查看>>
20171013_数据库新环境后期操作
查看>>
poj 1654 && poj 1675
查看>>
运维派 企业面试题1 监控MySQL主从同步是否异常
查看>>
Docker 版本
查看>>
poj 1753 Flip Game
查看>>
在深信服实习是怎样的体验(研发测试岗)
查看>>
Linux免密码登陆
查看>>
SpringMVC中文件的上传(上传到服务器)和下载问题(二)--------下载
查看>>
Socket & TCP &HTTP
查看>>
osip及eXosip的编译方法
查看>>
Hibernate composite key
查看>>
[CF Round #294 div2] D. A and B and Interesting Substrings 【Map】
查看>>
keepalived+nginx安装配置
查看>>