牡丹江市网站建设_网站建设公司_自助建站_seo优化
2026/1/2 12:08:46 网站建设 项目流程

题目链接

分块打标记维护。

#include<cstdio>
#include<algorithm>
#include<cmath>
#define N 300005
#define D 605
using namespace std;int n;
struct block {int B,cnt,l[D],r[D],bel[N];long long a[N],tag[D];void build(int n) {B=sqrt(n);for(int i=1;i<=n;i+=B) {l[++cnt]=i,r[cnt]=min(i+B-1,n);for(int j=l[cnt];j<=r[cnt];j++) bel[j]=cnt;}for(int i=1;i<=n;i++) scanf("%lld",&a[i]);}void add(int p,int L,int R,long long c) {L=max(L,l[p]),R=min(R,r[p]);for(int i=L;i<=R;i++) a[i]+=c;}void modify(int L,int R,long long c) {int p=bel[L],q=bel[R];if(p==q) return add(p,L,R,c);add(p,L,R,c),add(q,L,R,c);for(int i=p+1;i<q;i++) tag[i]+=c;}long long ask(int x) {return a[x]+tag[bel[x]];}
} t1;
int main() {scanf("%d",&n);t1.build(n);for(int i=1,op,l,r;i<=n;i++) {long long c; scanf("%d%d%d%lld",&op,&l,&r,&c);if(op==0) t1.modify(l,r,c);else printf("%lld\n",t1.ask(r));}return 0;
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询