求助,为什么10pts

P7077 [CSP-S2020] 函数调用

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


|