为什么本地能过,交上去CE

P10853 【MX-X2-T2】「Cfz Round 4」Xor Counting

Contingency_Core @ 2024-08-10 18:24:43

struct zds
{
    int a[N*32][2],b[N*32];
    int all=1;
    inline void add(int x)
    {
        int now=0;
        for(int i=30;i>=0;i--)
        {
            if(a[now][(x>>i)&1])
                now=a[now][(x>>i)&1];
            else
                now=a[now][(x>>i)&1]=all++;
            b[now]++;
        }
    }
    inline int ask(int x)
    {
        int ans=0,now=0;
        int i=30;
        for(;i>=0;i--)
        {
            if(a[now][0])
                now=a[now][0];
            else
                return 0;
            if((x>>i)&1)
                break;
        }
      i--;
        for(;i>=0;i--)
        {
            b[now]++;
            if((x>>i)&1)
                ans+=b[a[now][1]];
            if(a[now][0])
                now=a[now][0];
            else
                return ans;
        }
        ans+=b[now];
        return ans;
    }
    void clear()
    {
        memset(b,0,all*4);
    }
} t1={};

为什么把字典树写结构体就CE了(本地能过) 写在外面就AC了。


by Composite_Function @ 2024-08-10 18:27:33

@Contingency_Core 结构体内部不能赋值,需要手动写个初始化程序


by Contingency_Core @ 2024-08-10 18:32:46

@Composite_Function 感谢大佬orz


|