3155: Preprefix sum
来源:互联网 发布:java 语句 顺序 编辑:程序博客网 时间:2024/06/03 19:19
题目链接
题目大意:单点修改,求前缀和的前缀和
题解:树状数组实现区间修改的思路
维护两个前缀和,
我的收获:推式子……
#include <iostream>#include <cstdio>#include <cstring>#define ll long longusing namespace std;const int M=100005;int n,m;int a[M];ll c[2][M];void modify(int f,int x,ll val){for(int i=x;i<=n;i+=i&(-i)) c[f][i]+=val;}ll query(int f,int x){ll tmp=0;for(int i=x;i>0;i-=i&(-i)) tmp+=c[f][i];return tmp;}void work(){ char opt[10];int x,y; for(int i=1;i<=m;i++){ scanf("%s",opt); if(opt[0]=='Q') scanf("%d",&x),printf("%lld\n",query(1,x)-query(0,x)*(n-x)); else scanf("%d%d",&x,&y),modify(0,x,y-a[x]),modify(1,x,(ll)(n-x+1)*(y-a[x])),a[x]=y; }}void init(){ cin>>n>>m; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); modify(0,i,a[i]); modify(1,i,(ll)(n-i+1)*a[i]); }}int main(){ init(); work(); return 0;}
阅读全文
0 0
- 【BZOJ】3155 Preprefix Sum
- bzoj 3155 Preprefix sum
- BZOJ 3155 Preprefix sum
- 3155: Preprefix sum
- 3155: Preprefix sum
- [bzoj-3155]Preprefix sum 题解
- bzoj 3155 Preprefix sum 树状数组
- BZOJ 3155: Preprefix sum 树状数组
- [bzoj 3155] Preprefix sum(树状数组)
- BZOJ 3155: Preprefix sum 树状数组题解
- bzoj 3155: Preprefix sum 树状数组
- bzoj3155: Preprefix sum
- 【BZOJ3155】Preprefix sum
- 【bzoj3155】Preprefix Sum
- BZOJ3155 Preprefix sum
- BZOJ Preprefix sum
- 【bzoj3155】【Preprefix sum】【树状数组】
- 【BZOJ3155】Preprefix sum【树状数组】
- Xcode9学习笔记13
- 【SSLGZ 2774】2017年10月19日提高组 青蛙 (jump)
- 【SSLGZ 2775】2017年10月19日提高组 新壳栈 (stk)
- 练习Go语言-HTTP压力测试.md
- python中字典的操作I
- 3155: Preprefix sum
- post方式采集网页数据-php采集网页-php爬虫视频教程7
- 【SSLGZ 2776】2017年10月19日提高组 整除(number)(容斥原理)
- php多线程采集网页数据-php采集网页-php爬虫视频教程8
- Hadoop学习笔记(五)MapReduce
- 关于安卓手机安装obb软件包的一个小问题
- Xcode9学习笔记14
- 1996: [Hnoi2010]chorus 合唱队
- 090 定积分之物理应用