QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#47402 | #2228. Bread Pit | tovarisch | WA | 11ms | 17768kb | C++ | 1.6kb | 2022-09-09 03:46:47 | 2022-09-09 03:46:50 |
Judging History
answer
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <queue>
#include <ctime>
#include <cassert>
#include <complex>
#include <string>
#include <cstring>
#include <chrono>
#include <random>
#include <bitset>
#include <array>
using namespace std;
/* *
*
* Too many mind, no mind.
*
* */
const int maxn = 3e5 + 10;
int par[maxn], children[maxn], idx[maxn];
vector <int> tree[maxn], leaf[maxn], nodes;
void dfs(int u, int prev = 0, int w = 0) {
int nxt = !w ? u : (children[u] > 1 ? u : w);
for (int& v: tree[u]) {
if (v == prev) continue;
dfs(v, u, nxt);
}
if (u && tree[u].size() <= 1) {
nodes.push_back(nxt);
leaf[nxt].push_back(u);
}
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int n, q; cin >> n >> q;
for (int i = 1; i < n; i++) {
cin >> par[i];
tree[i].push_back(par[i]);
tree[par[i]].push_back(i);
children[par[i]]++;
}
dfs(0);
nodes.resize(unique(nodes.begin(), nodes.end()) - nodes.begin());
bool surface = false;
for (int i = 0; i < q; i++) {
if (nodes.empty()) {
cout << 0 << '\n';
continue;
}
int u = nodes[i % nodes.size()];
cout << (surface ? 0 : leaf[u][idx[u]]) << '\n';
//if (leaf[u][idx[u]] == 0) surface = true;
idx[u] = (idx[u] + 1) % leaf[u].size();
//if (children[u] == 1) leaf[u][0] = par[leaf[u][0]];
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 17768kb
input:
1 1
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 2ms
memory: 17508kb
input:
2 2 0
output:
1 1
result:
ok 2 lines
Test #3:
score: 0
Accepted
time: 1ms
memory: 17632kb
input:
3 3 0 1
output:
2 2 2
result:
ok 3 lines
Test #4:
score: 0
Accepted
time: 4ms
memory: 17612kb
input:
4 4 0 1 1
output:
2 3 2 3
result:
ok 4 lines
Test #5:
score: 0
Accepted
time: 8ms
memory: 17708kb
input:
5 5 0 0 0 1
output:
4 2 3 4 2
result:
ok 5 lines
Test #6:
score: 0
Accepted
time: 2ms
memory: 17560kb
input:
6 6 0 1 2 3 3
output:
4 5 4 5 4 5
result:
ok 6 lines
Test #7:
score: 0
Accepted
time: 4ms
memory: 17664kb
input:
7 7 0 0 0 0 1 5
output:
6 2 3 4 6 2 3
result:
ok 7 lines
Test #8:
score: 0
Accepted
time: 4ms
memory: 17724kb
input:
8 8 0 1 0 2 0 2 6
output:
4 3 5 7 3 5 4 3
result:
ok 8 lines
Test #9:
score: 0
Accepted
time: 4ms
memory: 17640kb
input:
9 9 0 1 2 2 2 0 3 7
output:
8 6 4 6 5 6 8 6 4
result:
ok 9 lines
Test #10:
score: 0
Accepted
time: 7ms
memory: 17688kb
input:
10 10 0 0 1 2 4 3 5 7 5
output:
6 8 6 9 6 8 6 9 6 8
result:
ok 10 lines
Test #11:
score: 0
Accepted
time: 5ms
memory: 17724kb
input:
11 11 0 0 2 3 0 5 5 3 8 6
output:
1 4 10 1 9 7 1 4 10 1 9
result:
ok 11 lines
Test #12:
score: 0
Accepted
time: 11ms
memory: 17712kb
input:
12 12 0 0 2 0 1 3 6 4 6 6 9
output:
5 7 8 5 11 8 5 10 8 5 7 8
result:
ok 12 lines
Test #13:
score: -100
Wrong Answer
time: 4ms
memory: 17676kb
input:
13 13 0 1 1 1 4 3 2 1 2 7 1 8
output:
10 6 9 5 10 12 9 11 10 6 9 5 10
result:
wrong answer 3rd lines differ - expected: '5', found: '9'