标签: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