QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#630528#6611. United in StormwindOkuchiriCompile Error//C++203.1kb2024-10-11 19:01:322024-10-11 19:01:33

Judging History

你现在查看的是最新测评结果

  • [2024-10-11 19:01:33]
  • 评测
  • [2024-10-11 19:01:32]
  • 提交

answer

#include<bits/stdc++.h>
#define ll long
#define mod 1000000007
using namespace std;
ll root=1,n,m,k;
vector<ll>ly[25];
vector<ll>ttp;
ll tot=1,son[2200006][2],sz[2200006][22][2],a[1100006],b[1100006],dep[2200006],ex[30],lg[2200006];
void work()
{
    ex[0]=1;
    for(ll i=1;i<30;i++)ex[i]=ex[i-1]<<1;
    for(ll i=1;i<=2200000;i++)
    {
        lg[i]=lg[i-1];
        if(i==ex[lg[i]+1])lg[i]++;
    }
    lg[0]=-1;
    cin>>n>>m>>k;
    ly[m+1].push_back(root);
    dep[root]=0;
    for(ll i=1;i<=n;i++)
    {
        string s;
        cin>>s;
        ll now=root;
        for(ll j=0;j<m;j++)
        {
            ll d;
            if(s[j]=='A')d=0;
            else d=1;
            if(son[now][d]==0)
            {
                tot++;
                son[now][d]=tot;
            }
            now=son[now][d];
            dep[now]=j+1;
            ly[m-j].push_back(now);
            for(ll p=dep[now]-1;p<m;p++)
            {
                if(s[p]=='A')
                {
                    sz[now][m-p][0]++;
                    cout<<now<<' '<<m-p<<' '<<0<<endl;
                }
                else
                {
                    sz[now][m-p][1]++;
                    cout<<now<<' '<<m-p<<' '<<1<<endl;
                }
            }
        }
    }
    for(ll i=1;i<=m+1;i++)
    {
        ttp.clear();
        sort(ly[i].begin(),ly[i].end());
        for(ll j=0;j<ly[i].size();j++)
        {
            if(j==0||ly[i][j]!=ly[i][j-1])
            {
                ttp.push_back(ly[i][j]);
            }
        }
        ly[i].clear();
        for(ll j=0;j<ttp.size();j++)
        {
            ly[i].push_back(ttp[j]);
        }
    }
    for(ll i=1;i<=m;i++)
    {
        ll nn[21],yy=0;
        memset(nn,0,sizeof(nn));
        for(ll j=0;j<ly[i+1].size();j++)
        {
            ll ls=son[ly[i+1][j]][0];
            ll rs=son[ly[i+1][j]][1];
            if(ls&&rs)
            {
                yy+=sz[ls][m+1-dep[ls]][0]*sz[rs][m+1-dep[rs]][1]+sz[ls][m+1-dep[ls]][1]*sz[rs][m+1-dep[rs]][0];
                for(ll p=i;p>=1;p--)
                {
                    nn[p]+=sz[ls][p][0]*sz[rs][p][1]+sz[ls][p][1]*sz[rs][p][0];
                }
                cout<<ly[i+1][j]<<' '<<ls<<' '<<rs<<' '<<i<<' '<<j<<':'<<yy<<' ';
                for(ll p=i;p>=1;p--)cout<<nn[p]<<' ';
                cout<<endl;
            }
        }
        for(ll j=0;j<ex[i-1];j++)
        {
            if(j!=0)
                b[ex[i-1]+j]=b[j]+yy;
            else
                
            b[j]+=nn[lg[j]+1];
            b[j]=b[j]+res;
            cout<<j<<' '<<ex[i-1]+j<<"<-"<<b[ex[i-1]+j]<<' '<<b[j]<<endl;
        }
        for(ll j=0;j<ex[i];j++)
        {
            a[j]=b[j];
            cout<<i<<','<<j<<':'<<a[j]<<endl;
        }
    }
    ll answer=0;
    for(ll i=1;i<ex[m];i++)
    {
        if(a[i]>=k)
        {
            cout<<"Answer:"<<i<<endl;
            answer++;
        }
    }
    cout<<answer;
}
int main()
{
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    ll T=1;
    while(T--)
    {
        work();
    }
}

Details

answer.code: In function ‘void work()’:
answer.code:99:23: error: ‘res’ was not declared in this scope
   99 |             b[j]=b[j]+res;
      |                       ^~~