BZOJ3155 Preprefix sum
来源:互联网 发布:淘宝直通车玉女剑法 编辑:程序博客网 时间:2024/06/06 09:48
一个数相当于给他后边的前缀和序列加了一个等差数列
直接线段树
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<queue>#include<map>#include<bitset>#include<stack>#include<vector>#include<set>using namespace std;#define MAXN 100010#define MAXM 1010#define INF 1000000000#define MOD 1000000007#define ll long long#define eps 1e-8ll n,m;ll s[MAXN<<2],c[MAXN<<2];ll a[MAXN];void change(ll x,ll y,ll z,ll l,ll r,ll as,ll ac){if(y==l&&z==r){s[x]+=as;c[x]+=ac;return ;}ll mid=y+z>>1;if(r<=mid){change(x<<1,y,mid,l,r,as,ac);}else if(l>mid){change(x<<1|1,mid+1,z,l,r,as,ac);}else{change(x<<1,y,mid,l,mid,as,ac);change(x<<1|1,mid+1,z,mid+1,r,as+(mid-l+1)*ac,ac);}}ll ask(ll x,ll y,ll z,ll p){if(y==z){return s[x];}ll mid=y+z>>1;if(p<=mid){return s[x]+(ll)(p-y)*c[x]+ask(x<<1,y,mid,p);}else{return s[x]+(ll)(p-y)*c[x]+ask(x<<1|1,mid+1,z,p);}}int main(){ll i,x,y;scanf("%lld%lld",&n,&m);char o[10];for(i=1;i<=n;i++){scanf("%lld",&a[i]);change(1,1,n,i,n,a[i],a[i]);}while(m--){scanf("%s",o);if(o[0]=='Q'){scanf("%lld",&x);printf("%lld\n",ask(1,1,n,x));}if(o[0]=='M'){scanf("%lld%lld",&x,&y);change(1,1,n,x,n,-a[x]+y,-a[x]+y);a[x]=y;}}return 0;}/**/
0 0
- bzoj3155: Preprefix sum
- 【BZOJ3155】Preprefix sum
- 【bzoj3155】Preprefix Sum
- BZOJ3155 Preprefix sum
- 【bzoj3155】【Preprefix sum】【树状数组】
- 【BZOJ3155】Preprefix sum【树状数组】
- bzoj3155: Preprefix sum 树状数组
- bzoj3155 Preprefix sum(简单线段树)
- 【BZOJ】3155 Preprefix Sum
- BZOJ Preprefix sum
- bzoj 3155 Preprefix sum
- BZOJ 3155 Preprefix sum
- 3155: Preprefix sum
- 3155: Preprefix sum
- [bzoj-3155]Preprefix sum 题解
- 【BZOJ】【P3155】【Preprefix sum】【题解】【树状数组】
- bzoj 3155 Preprefix sum 树状数组
- BZOJ 3155: Preprefix sum 树状数组
- ScrollView与Listview滑动冲突解决
- POJ-1953-World Cup Noise
- 前言介绍
- HIVE点滴:group by和distinct语句的执行顺序
- java 集合类Array、List、Map区别和联系
- BZOJ3155 Preprefix sum
- 给input文本框添加灰色提示文字
- select()
- 文章标题
- org.eclipse.jdt.core.prefs
- 欢迎使用CSDN-markdown编辑器
- HTML5基础学习笔记(五)
- java中List集合数据灵活转换
- Android中自定义控件的步骤