比赛 2026.1.3 评测结果 AAATTTTTTT
题目名称 团子大家族 最终得分 30
用户昵称 HXF_0号 运行时间 7.729 s
代码语言 C++ 内存使用 5.04 MiB
提交时间 2026-01-03 10:08:33
显示代码纯文本
#include<bits/stdc++.h>
#define N 100001
#define ll long long
using namespace std;
ll n,m,a[N],f[N],num[N],op,l,r,x,p,v,k,ans;
int main(){
    freopen("seqsqrt.in","r",stdin);
    freopen("seqsqrt.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++){
        cin>>f[i];
        num[f[i]]++;
    }
    while(m--){
        cin>>op;
        if(op==1){
            cin>>l>>r>>x;
            for(int i=l;i<=r;i++) a[i]+=x;
        }else if(op==2){
            cin>>p>>v;
            num[f[p]]--;
            num[v]++;
            f[p]=v;
        }else if(op==3){
            cin>>l>>r>>k;
            for(int i=l;i<=r;i++)
            if(f[i]==k) ans+=a[i];
            cout<<ans*num[k]<<endl;
            ans=0;
        }
	}
    return 0;
}