标签:pre i++ int names logs main clu == 数列
1.区间修改,单点查询
#include <bits/stdc++.h> using namespace std; int a[1005],bl[1005],flag[1005],blo; void update(int l,int r,int n){ for(int i=l;i<=min(r,bl[l]*blo);i++) a[i]+=n; if(bl[l]!=bl[r]) for(int i=(bl[r]-1)*blo+1;i<=r;i++) a[i]+=n; for(int i=bl[l]+1;i<bl[r];i++) flag[i]+=n; } int query(int w){ return a[w]+flag[bl[w]]; } int main(){ int n; cin>>n; blo=sqrt(n); for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) bl[i]=(i-1)/blo+1; while(1){ int f; cin>>f; if(f==1){ int a,b,c; cin>>a>>b>>c; update(a,b,c); } if(f==2){ int w; cin>>w; cout<<query(w)<<endl; } } return 0; }
标签:pre i++ int names logs main clu == 数列
原文地址:http://www.cnblogs.com/HC-LittleJian/p/7710550.html