#include<cstdio>
using namespace std;
#define ll long long
#define N 200100
int cnt,tmp[N],a[N];
char s[100];
inline const int read(){
register int x=0,f=1;
register char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
struct node{
int l,r,lch,rch,tage;
int s[7];
}tr[N<<2];
void pushdown(int k,int p){
for(int i=0;i<=6;i++) tmp[(i+p)%7]=tr[k].s[i];
for(int i=0;i<=6;i++) tr[k].s[i]=tmp[i];
}
void updata(int k){
pushdown(tr[k].lch,tr[k].tage);
pushdown(tr[k].rch,tr[k].tage);
tr[tr[k].lch].tage+=tr[k].tage;
tr[tr[k].rch].tage+=tr[k].tage;
tr[k].tage=0;
}
void sum(int k){
for(int i=0;i<=6;i++) tr[k].s[i]=tr[tr[k].lch].s[i]+tr[tr[k].rch].s[i];
}
void build(int l,int r){
int k=++cnt;
tr[cnt].l=l;tr[cnt].r=r;
if(l==r-1){
tr[k].s[a[l]]++;return ;
}
tr[k].lch=cnt+1;
int mid=(l+r)>>1;
build(l,mid);
tr[k].rch=cnt+1;
build(mid,r);
//tr[k].sum=tr[tr[k].lch].sum+tr[tr[k].rch].sum;
sum(k);
}
void add(int k,int l,int r,int p){
if(l<=tr[k].l&&r>=tr[k].r){
tr[k].tage=(tr[k].tage+p)%7;
pushdown(k,p);
return ;
}
if(tr[k].tage) updata(k);
int mid=(tr[k].l+tr[k].r>>1);
if(l<mid) add(tr[k].lch,l,r,p);
if(r>mid) add(tr[k].rch,l,r,p);
sum(k);
}
int query(int k,int l,int r){
if(l<=tr[k].l&&r>=tr[k].r) return tr[k].s[0];
int ans=0;
if(tr[k].tage) updata(k);
int mid=(tr[k].l+tr[k].r>>1);
if(l<mid) ans+=query(tr[k].lch,l,r);
if(r>mid) ans+=query(tr[k].rch,l,r);
return ans;
}
int main(){
int n,m,opt,x,y,val;
n=read();
for(int i=1;i<=n;i++) a[i]=read()%7;
build(1,n+1);
m=read();
for(int i=1;i<=m;i++){
scanf("%s",s);
if(s[0]=='a'){
x=read();y=read();val=read()%7;
add(1,x,y+1,val);
}
else{
x=read();y=read();
printf("%d\n",query(1,x,y+1));
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术