大红(WA)大紫(RE)?

P7077 [CSP-S2020] 函数调用

Lucifero @ 2020-11-16 18:58:11

不会啊,每个样例都过了,虽然不是正解,但起码也能得到一点分吧……

蒟蒻 1h 都花在这上面了,不甘心!!!

#include <bits/stdc++.h>
#define mod 998244353
using namespace std;
int a[200000],T[200000],P[200000],V[200000],g[2000][2000],f,n,m;
void face1(int x,int k)
{
    a[x]=(a[x]%mod+k%mod)%mod;
}
void face2(int k)
{
    for(register int i=1;i<=n;i++) a[i]=(a[i]%mod*k%mod)%mod;
}
void face3(int u,int v)
{
    for(register int i=1;i<=v;i++)
        if (T[g[u][i]]==1)
            face1(P[g[u][i]],V[g[u][i]]);
        else if (T[g[u][i]]==2)
            face2(V[g[u][i]]);
        else if (T[g[u][i]]==3)
            face3(g[u][i],P[g[u][i]]);
}
int main()
{
    //函数调用
    register bool flag=false;
    register int Q,i,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++) scanf("%d",&a[i]);
    scanf("%d",&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&T[i]);
        if (T[i]==1)
        {
            flag=true;
            scanf("%d%d",&P[i],&V[i]);
        }
        else if (T[i]==2)
        {
            flag=true;
            scanf("%d",&V[i]);
        }
        else if (T[i]==3)
        {   
            scanf("%d",&P[i]);
            for(j=1;j<=P[i];j++) scanf("%d",&g[i][j]);
        }
    }
    if (!flag)
    {
        printf("%d ",a[i]%mod);
        return 0;
    }
    scanf("%d",&Q);
    for(i=1;i<=Q;i++)
    {
        scanf("%d",&f);
        if (T[f]==1)
            face1(P[f],V[f]);
        else if (T[f]==2)
            face2(V[f]);
        else if (T[f]==3)
            face3(f,P[f]);
    }
    for(i=1;i<=n;i++) printf("%d ",a[i]%mod);
    printf("\n");
    return 0;
}

by BADFIVE @ 2020-11-16 19:02:00

虽然我不会,但是先%再说,%%%,tql,orzzz


by Lucifero @ 2020-11-16 19:02:23

az


|