Quenna @ 2023-10-20 19:30:36
#include<bits/stdc++.h>
using namespace std;
int a[100000001],n,m,k,t;
struct node{//函数存储
vector<int>c;
int p,v;
int t;
}f[1000001];
void k_function(int s){//递归式函数处理
if(f[s].t==1){
a[f[s].p]+=f[s].v;
return;
}
if(f[s].t==2){
for(int i=1;i<=n;i++) a[i]=a[i]*f[s].v%998244353;
return;
}
if(f[s].t==3){
for(int i=0;i<f[s].c.size();i++){
k_function(f[s].c[i]);
}
return;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>m;
for(int i=1;i<=m;i++){
cin>>t;
f[i].t=t;
if(t==1) cin>>f[i].p>>f[i].v;
if(t==2) cin>>f[i].v;
if(t==3){
cin>>t;
while(t--) cin>>k,f[i].c.push_back(k);
}
}
cin>>t;
while(t--){
cin>>m;
k_function(m);
}
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
}
五 彩 斑 斓
by KevinHu0402 @ 2024-09-20 21:58:14
同问
by Doudoufdx @ 2024-10-02 20:37:55
@Quenna 如果你只对了#5和#12,那就是没开long long
by yangyafan @ 2024-10-18 15:11:07
@Doudoufdx 可是我开了long long还是只过了#5和#12