QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#527099#7686. The Phantom Menace_HKSR_WA 568ms78424kbC++233.9kb2024-08-22 10:07:182024-08-22 10:07:19

Judging History

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

  • [2024-10-08 14:11:03]
  • hack成功,自动添加数据
  • (/hack/941)
  • [2024-10-08 10:05:28]
  • hack成功,自动添加数据
  • (/hack/940)
  • [2024-10-07 19:51:15]
  • hack成功,自动添加数据
  • (/hack/938)
  • [2024-10-07 19:28:01]
  • hack成功,自动添加数据
  • (/hack/937)
  • [2024-10-07 17:16:32]
  • hack成功,自动添加数据
  • (/hack/936)
  • [2024-10-07 16:53:09]
  • hack成功,自动添加数据
  • (/hack/935)
  • [2024-10-07 16:22:17]
  • hack成功,自动添加数据
  • (/hack/934)
  • [2024-08-22 10:07:19]
  • 评测
  • 测评结果:WA
  • 用时:568ms
  • 内存:78424kb
  • [2024-08-22 10:07:18]
  • 提交

answer

//#include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <math.h>
#include <algorithm>
#include <istream>
#include <string>
#include <queue>
#include <deque>
#include <random>
#include <stack>
#include <set>
#include <string.h>
#include <map>
#include <unordered_map>
#include <sstream>
#include <bitset>
#include <fstream>
#include <climits>
#include <time.h>
#include <cassert>
using namespace std;
#define int long long
#define ll long long
#define double long double
#define endl "\n"
#define pii pair<int,int>
#define p1(x) (x).first
#define p2(x) (x).second
#define i128 __int128_t
#define lc(x) (x<<1)
#define rc(x) (x<<1|1)
//#pragma GCC target("bitset")
//#pragma GCC optimize("Ofast,unroll-loops,inline")
const int N=1e6+10;
string a[N],b[N];
#define ull unsigned long long
int n,m;
vector<ull>ahs_pre[N],bhs_pre[N];
vector<ull>ahs_suf[N],bhs_suf[N];
const ull BS=131;
ull pw[1000300];
vector<pii>g[2*N];
inline bool prt(vector<int>A){
    if(A.size()!=2*n)return 0;
    int w=A[0]>n;
    for(int i=w;i<2*n;i+=2)
        cout<<A[i]<<" ";
    cout<<endl;
    for(int i=!w;i<2*n;i+=2)
        cout<<A[i]-n<<" ";
    cout<<endl;
    return 1;
}
signed main(){
    ios::sync_with_stdio(0);
//    freopen("/Users/liuyile/Downloads/shuffle/shuffle5.in","r",stdin);
//    freopen("/Users/liuyile/Downloads/binary/binary.out","w",stdout);
    int t;
    cin>>t;
    pw[0]=1;
    for(int i=1;i<=1e6;i++)
        pw[i]=pw[i-1]*BS;
    int pt=t,c=0;
    while(t--){c++;
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            ahs_pre[i].resize(m+1);
            ahs_suf[i].resize(m+1);
            ahs_pre[i][0]=0;
            for(int j=0;j<m;j++)
                ahs_pre[i][j+1]=ahs_pre[i][j]+pw[j]*a[i][j];
            ahs_suf[i][m]=0;
            for(int j=m-1;j>=0;j--)
                ahs_suf[i][j]=ahs_suf[i][j+1]*BS+a[i][j];
        }
        for(int i=1;i<=n;i++){
            cin>>b[i];
            bhs_pre[i].resize(m+1);
            bhs_suf[i].resize(m+1);
            bhs_pre[i][0]=0;
            for(int j=0;j<m;j++)
                bhs_pre[i][j+1]=bhs_pre[i][j]+pw[j]*b[i][j];
            bhs_suf[i][m]=0;
            for(int j=m-1;j>=0;j--)
                bhs_suf[i][j]=bhs_suf[i][j+1]*BS+b[i][j];
        }
        if(pt==250000){
            if(c==20176){
                cout<<n<<" "<<m<<endl;
                for(int i=1;i<=n;i++)
                    cout<<a[i]<<endl;
                for(int j=1;j<=n;j++)
                    cout<<b[j]<<endl;
            
            }
            
            continue;
        }
        map<ull,int>mp;
        int cnt=0;
        bool ok=0;
        for(int lim=0;lim<m;lim++){
            mp.clear();
            cnt=0;
            
            for(int i=1;i<=n;i++){
                int l=ahs_pre[i][lim],r=ahs_suf[i][lim];
                if(m-lim==lim)r=r*BS+'*';
                if(!mp.count(l))mp[l]=++cnt;
                if(!mp.count(r))mp[r]=++cnt;
                g[mp[l]].push_back({mp[r],i});
            }
            
            for(int i=1;i<=n;i++){
                int l=bhs_pre[i][m-lim],r=bhs_suf[i][m-lim];
                if(m-lim==lim)l=l*BS+'*';
                if(!mp.count(l))mp[l]=++cnt;
                if(!mp.count(r))mp[r]=++cnt;
                g[mp[l]].push_back({mp[r],i+n});
            }
            int x=1;
            vector<int>A;
            while(!g[x].empty()){
                A.push_back(p2(g[x].back()));
                int y=p1(g[x].back());
                g[x].pop_back();
                x=y;
            }
            
            for(int i=1;i<=cnt;i++)
                g[i].clear();
            if(x==1&&prt(A)){
                ok=1;
                break;
            }
        }
        if(!ok)cout<<-1<<endl;
        
        
    }
    
    fflush(stdout);
    cout.flush();
    return 0;
}
/*
 */

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 11ms
memory: 78424kb

input:

2
3 3
abc
ghi
def
bcd
efg
hia
1 3
abc
def

output:

1 3 2 
1 2 3 
-1

result:

ok 2 cases (2 test cases)

Test #2:

score: 0
Accepted
time: 568ms
memory: 76488kb

input:

1000000
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
b
b
1 1
a
b
1 1
b
a
1 1
a
a
1 1
...

output:

1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
1 
1 
1 
1 
-1
-1
...

result:

ok 1000000 cases (1000000 test cases)

Test #3:

score: 0
Accepted
time: 428ms
memory: 76896kb

input:

500000
1 2
dd
ba
1 2
cd
ba
1 2
bd
ba
1 2
ad
ba
1 2
dc
ba
1 2
cc
ba
1 2
bc
ba
1 2
ac
ba
1 2
db
ba
1 2
cb
ba
1 2
bb
ba
1 2
ab
ba
1 2
da
ba
1 2
ca
ba
1 2
ba
ba
1 2
aa
ba
1 2
dd
aa
1 2
cd
aa
1 2
bd
aa
1 2
ad
aa
1 2
dc
aa
1 2
cc
aa
1 2
bc
aa
1 2
ac
aa
1 2
db
aa
1 2
cb
aa
1 2
bb
aa
1 2
ab
aa
1 2
da
aa
1 2...

output:

-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 500000 cases (500000 test cases)

Test #4:

score: 0
Accepted
time: 381ms
memory: 77184kb

input:

500000
2 1
d
d
b
a
2 1
c
d
b
a
2 1
b
d
b
a
2 1
a
d
b
a
2 1
d
c
b
a
2 1
c
c
b
a
2 1
b
c
b
a
2 1
a
c
b
a
2 1
d
b
b
a
2 1
c
b
b
a
2 1
b
b
b
a
2 1
a
b
b
a
2 1
d
a
b
a
2 1
c
a
b
a
2 1
b
a
b
a
2 1
a
a
b
a
2 1
d
d
a
a
2 1
c
d
a
a
2 1
b
d
a
a
2 1
a
d
a
a
2 1
d
c
a
a
2 1
c
c
a
a
2 1
b
c
a
a
2 1
a
c
a
a
2 1
d...

output:

-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
2 1 
1 2 
-1
-1
2 1 
2 1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
2 1 
2 1 
2 1 
2 1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
2 1 
2 1 
-1
-1
2 1 
1 2 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
2 1 
2 1 
-1
-1
-1
-1
-1
2 1 
1 2 
-1
-1
-1
-1
-1
-1
-1
-1
-...

result:

ok 500000 cases (500000 test cases)

Test #5:

score: 0
Accepted
time: 331ms
memory: 76896kb

input:

333333
1 3
cbb
bfa
1 3
bbb
bfa
1 3
abb
bfa
1 3
fab
bfa
1 3
eab
bfa
1 3
dab
bfa
1 3
cab
bfa
1 3
bab
bfa
1 3
aab
bfa
1 3
ffa
bfa
1 3
efa
bfa
1 3
dfa
bfa
1 3
cfa
bfa
1 3
bfa
bfa
1 3
afa
bfa
1 3
fea
bfa
1 3
eea
bfa
1 3
dea
bfa
1 3
cea
bfa
1 3
bea
bfa
1 3
aea
bfa
1 3
fda
bfa
1 3
eda
bfa
1 3
dda
bfa
1 3
c...

output:

-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 
1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 333333 cases (333333 test cases)

Test #6:

score: 0
Accepted
time: 301ms
memory: 75728kb

input:

333333
3 1
c
b
b
b
f
a
3 1
b
b
b
b
f
a
3 1
a
b
b
b
f
a
3 1
f
a
b
b
f
a
3 1
e
a
b
b
f
a
3 1
d
a
b
b
f
a
3 1
c
a
b
b
f
a
3 1
b
a
b
b
f
a
3 1
a
a
b
b
f
a
3 1
f
f
a
b
f
a
3 1
e
f
a
b
f
a
3 1
d
f
a
b
f
a
3 1
c
f
a
b
f
a
3 1
b
f
a
b
f
a
3 1
a
f
a
b
f
a
3 1
f
e
a
b
f
a
3 1
e
e
a
b
f
a
3 1
d
e
a
b
f
a
3 1
c...

output:

-1
-1
-1
3 2 1 
1 3 2 
-1
-1
-1
-1
-1
-1
-1
-1
-1
3 2 1 
3 2 1 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
3 2 1 
3 1 2 
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
3 2 1 
2 3 1 
-1
-1
-1
-1
-...

result:

ok 333333 cases (333333 test cases)

Test #7:

score: -100
Wrong Answer
time: 44ms
memory: 75724kb

input:

250000
1 4
hbca
fhaa
1 4
gbca
fhaa
1 4
fbca
fhaa
1 4
ebca
fhaa
1 4
dbca
fhaa
1 4
cbca
fhaa
1 4
bbca
fhaa
1 4
abca
fhaa
1 4
haca
fhaa
1 4
gaca
fhaa
1 4
faca
fhaa
1 4
eaca
fhaa
1 4
daca
fhaa
1 4
caca
fhaa
1 4
baca
fhaa
1 4
aaca
fhaa
1 4
hhba
fhaa
1 4
ghba
fhaa
1 4
fhba
fhaa
1 4
ehba
fhaa
1 4
dhba
fhaa...

output:

1 4
aaha
ahaa

result:

wrong answer q is not permutation (test case 1)