QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#288258 | #1133. Monster Game | 000226 | 0 | 23ms | 4976kb | C++17 | 2.0kb | 2023-12-22 12:12:31 | 2023-12-22 12:12:31 |
Judging History
answer
#include "monster.h"
#include <bits/stdc++.h>
#define debug(...) fprintf (stderr, __VA_ARGS__)
void msort(std :: vector<int> &p) {
if (p.size() == 1) return ;
std :: vector<int> L, R;
int mid = p.size() >> 1; -- mid;
for (int i = 0; i <= mid; i ++) L.push_back (p[i]);
for (int i = mid + 1; i < (int) p.size(); i ++) R.push_back (p[i]);
msort (L); msort (R);
p.clear();
int i = 0, j = 0;
while (i < L.size() || j < R.size()) {
if (i == L.size()) p.push_back (R[j]), j ++;
else if (j == R.size()) p.push_back (L[i]), i ++;
else if (Query (L[i], R[j])) p.push_back (R[j]), j ++;
else p.push_back (L[i]), i ++;
}
}
inline std :: vector<int> get(std :: vector<int> p) {
std :: vector<int> ans = p;
for (int i = 0; i < (int) p.size(); i ++) ans[p[i]] = i;
return ans;
}
std :: vector<int> brute_force(int n) {
std :: vector<int> p(n), cnt(n);
std :: map<int, std :: map<int, int> > f;
std :: iota (p.begin(), p.end(), 0);
for (int i = 0; i < n; i ++)
for (int j = 0; j < n; j ++) if (i != j) if (f[p[i]][p[j]] = Query (p[i], p[j])) ++ cnt[p[i]];
std :: sort (p.begin(), p.end(), [&] (int x, int y) -> bool {
if (cnt[x] != cnt[y]) return cnt[x] < cnt[y];
return f[x][y];
} );
return p;
}
std :: vector<int> Solve(int n) {
std :: vector<int> p(n);
std :: iota (p.begin(), p.end(), 0);
if (n <= 200) {
return get (brute_force(n) );
}
msort (p);
const int m = 30;
std :: vector<int> cnt(n);
for (int i = 0; i < m; i ++)
for (int j = 0; j < m; j ++) if (i != j) if (Query (p[i], p[j])) ++ cnt[p[i]];
int m1 = -1, m2 = -1;
for (int i = 0; i < m; i ++) {
if (cnt[p[i]] == 0) std :: swap (m1, m2), m2 = i;
}
if ( Query (m1, m2)) ; else std :: swap (m1, m2);
int now = m1;
std :: reverse (p.begin(), p.begin() + now + 1);
now ++;
for (int i = now; i < n; i ++) {
if (Query (p[now - 1], p[i])) {
std :: reverse (p.begin() + now, p.begin() + i + 1);
now = i + 1;
}
}
std :: reverse (p.begin() + now, p.end());
return get (p);
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 10
Accepted
time: 1ms
memory: 4000kb
input:
4 0 1 1 1 0 0 0 1 0 0 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 F 4 2 1 0 3
result:
points 1.0 points 1.0
Test #2:
score: 10
Accepted
time: 1ms
memory: 3784kb
input:
4 1 0 0 0 1 1 1 0 0 1 0 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 F 4 1 2 0 3
result:
points 1.0 points 1.0
Test #3:
score: 10
Accepted
time: 1ms
memory: 4068kb
input:
4 1 1 0 0 1 0 0 0 1 1 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 1 0 Q 1 2 Q 1 3 Q 2 0 Q 2 1 Q 2 3 Q 3 0 Q 3 1 Q 3 2 F 4 3 0 1 2
result:
points 1.0 points 1.0
Test #4:
score: 10
Accepted
time: 0ms
memory: 3736kb
input:
5 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 F 5 2 1 3 4 0
result:
points 1.0 points 1.0
Test #5:
score: 10
Accepted
time: 1ms
memory: 3736kb
input:
5 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 F 5 3 1 0 2 4
result:
points 1.0 points 1.0
Test #6:
score: 10
Accepted
time: 1ms
memory: 4060kb
input:
5 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 4 0 Q 4 1 Q 4 2 Q 4 3 F 5 2 4 3 0 1
result:
points 1.0 points 1.0
Test #7:
score: 10
Accepted
time: 1ms
memory: 3840kb
input:
6 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 F 6 3 4 1 5 0 2
result:
points 1.0 points 1.0
Test #8:
score: 10
Accepted
time: 1ms
memory: 3772kb
input:
6 0 0 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 F 6 1 5 4 2 3 0
result:
points 1.0 points 1.0
Test #9:
score: 10
Accepted
time: 1ms
memory: 3792kb
input:
6 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 F 6 5 3 1 2 4 0
result:
points 1.0 points 1.0
Test #10:
score: 10
Accepted
time: 1ms
memory: 3744kb
input:
7 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 1 0 1 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 F 7 0 5 3 1 2 4 6
result:
points 1.0 points 1.0
Test #11:
score: 10
Accepted
time: 1ms
memory: 3852kb
input:
7 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 F 7 4 3 5 6 2 0 1
result:
points 1.0 points 1.0
Test #12:
score: 10
Accepted
time: 1ms
memory: 4064kb
input:
7 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 F 7 1 4 3 0 2 6 5
result:
points 1.0 points 1.0
Test #13:
score: 10
Accepted
time: 1ms
memory: 3748kb
input:
8 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #14:
score: 10
Accepted
time: 1ms
memory: 3776kb
input:
8 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #15:
score: 10
Accepted
time: 1ms
memory: 3856kb
input:
8 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 1 0 Q 1 2 Q 1 3 Q 1 4 Q 1 5 Q 1 6 Q 1 7 Q 2 0 Q 2 1 Q 2 3 Q 2 4 Q 2 5 Q 2 6 Q 2 7 Q 3 0 Q 3 1 Q 3 2 Q 3 4 Q 3 5 Q 3 6 Q 3 7 Q 4 0 Q 4 1 Q 4 2 Q 4 3 Q 4 5 Q 4 6 Q 4 7 Q 5 0 Q 5 1 Q 5 2 Q 5 3 Q 5 4 Q 5 6 Q 5 7 Q 6 0 Q 6 1 Q 6 2 Q 6 3 Q 6 4 Q 6 5 Q 6 7 Q 7 0 ...
result:
points 1.0 points 1.0
Test #16:
score: 0
Wrong Answer
time: 23ms
memory: 4976kb
input:
198 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 ...
output:
Q 0 1 Q 0 2 Q 0 3 Q 0 4 Q 0 5 Q 0 6 Q 0 7 Q 0 8 Q 0 9 Q 0 10 Q 0 11 Q 0 12 Q 0 13 Q 0 14 Q 0 15 Q 0 16 Q 0 17 Q 0 18 Q 0 19 Q 0 20 Q 0 21 Q 0 22 Q 0 23 Q 0 24 Q 0 25 Q 0 26 Q 0 27 Q 0 28 Q 0 29 Q 0 30 Q 0 31 Q 0 32 Q 0 33 Q 0 34 Q 0 35 Q 0 36 Q 0 37 Q 0 38 Q 0 39 Q 0 40 Q 0 41 Q 0 42 Q 0 43 Q 0 44 Q...
result:
wrong answer Wrong Answer [6]
Subtask #2:
score: 0
Wrong Answer
Test #33:
score: 0
Wrong Answer
time: 14ms
memory: 3808kb
input:
995 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 0 1 ...
output:
Q 1 2 Q 0 2 Q 3 4 Q 5 6 Q 3 6 Q 4 6 Q 4 5 Q 0 3 Q 0 6 Q 0 5 Q 0 4 Q 2 4 Q 7 8 Q 9 10 Q 7 9 Q 8 9 Q 11 12 Q 13 14 Q 11 13 Q 12 13 Q 12 14 Q 7 11 Q 7 13 Q 7 14 Q 8 14 Q 8 12 Q 3 11 Q 6 11 Q 5 11 Q 0 11 Q 4 11 Q 2 11 Q 2 13 Q 2 7 Q 2 14 Q 2 12 Q 2 8 Q 2 9 Q 1 9 Q 15 16 Q 17 18 Q 16 17 Q 15 17 Q 15 18 Q...
result:
wrong answer Wrong Answer [4]
Subtask #3:
score: 0
Wrong Answer
Test #45:
score: 0
Wrong Answer
time: 10ms
memory: 3788kb
input:
998 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 ...
output:
Q 1 2 Q 0 1 Q 0 2 Q 3 4 Q 5 6 Q 4 6 Q 4 5 Q 3 5 Q 1 6 Q 0 6 Q 0 4 Q 2 4 Q 2 3 Q 2 5 Q 7 8 Q 9 10 Q 7 9 Q 8 9 Q 8 10 Q 11 12 Q 13 14 Q 12 14 Q 12 13 Q 11 13 Q 7 14 Q 7 12 Q 9 12 Q 9 11 Q 8 11 Q 8 13 Q 10 13 Q 1 14 Q 1 7 Q 6 7 Q 0 7 Q 0 12 Q 0 9 Q 4 9 Q 4 11 Q 4 8 Q 3 8 Q 5 8 Q 2 8 Q 2 13 Q 2 10 Q 15 ...
result:
wrong answer Wrong Answer [4]