QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#546106 | #7686. The Phantom Menace | GaloisField1048576 | WA | 692ms | 216828kb | C++14 | 3.0kb | 2024-09-03 19:51:17 | 2024-09-03 19:51:18 |
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-09-03 19:51:17]
- 提交
answer
#include <bits/stdc++.h>
using namespace std;
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 = 1919810, M = 5020100709000001;
ull pw[1000300];
vector<pair<int, int>> 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;
}
vector<int> A;
inline void dfs(int u) {
while (!g[u].empty()) {
auto [v, id] = g[u].back();
g[u].pop_back();
dfs(v);
A.push_back(id);
}
}
int ic[2 * N], oc[2 * N];
void solve() {
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]) % M;
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]) % M;
}
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]) % M;
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]) % M;
}
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 + '*', r %= M;
if (!mp.count(l)) mp[l] = ++cnt;
if (!mp.count(r)) mp[r] = ++cnt;
g[mp[l]].push_back({mp[r], i});
oc[mp[l]]++, ic[mp[r]]++;
}
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 + '*', l %= M;
if (!mp.count(l)) mp[l] = ++cnt;
if (!mp.count(r)) mp[r] = ++cnt;
g[mp[l]].push_back({mp[r], i + n});
oc[mp[l]]++, ic[mp[r]]++;
}
A.clear();
dfs(1);
reverse(A.begin(), A.end());
for (int i = 1; i <= cnt; i++) g[i].clear();
bool op = 1;
for (int i = 1; i <= cnt; i++) op &= ic[i] == oc[i], ic[i] = oc[i] = 0;
if (op && prt(A)) {
ok = 1;
break;
}
}
if (!ok) cout << -1 << endl;
}
signed main() {
ios::sync_with_stdio(0);
int t;
cin >> t;
pw[0] = 1;
for (int i = 1; i <= 1e6; i++) pw[i] = pw[i - 1] * BS % M;
int pt = t;
while (t--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 43ms
memory: 216616kb
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: 692ms
memory: 214492kb
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: 439ms
memory: 214548kb
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: 351ms
memory: 216828kb
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: 313ms
memory: 214492kb
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: 357ms
memory: 216536kb
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: 311ms
memory: 216592kb
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 -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:
wrong answer Jury has the answer but participant has not (test case 83)