QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#877085 | #8056. Travel 2 | FangYifan | RE | 0ms | 3456kb | C++20 | 1.8kb | 2025-01-31 19:31:01 | 2025-01-31 19:31:07 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using db = double;
constexpr int mod = 998244353;
constexpr int N = 2510;
vector<int> edge[N];
int n, deg[N], cur[N], cnt[N], vis[N], instk[N], fa[N];
int query(int id) {
cout << "> " << id << endl;
int x; cin >> x >> deg[x];
return x;
}
void dfs(int u, int son) {
if (!vis[u]) n++;
cnt[u]++;
vis[u] = instk[u] = true;
if (son) {
for (int i = 0; i < (int)edge[u].size(); i++) {
int v = edge[u][i];
if (v == son) {
query(i + 1);
// cerr << "1 : " << u << " -> " << v << endl;
dfs(v, -1);
}
}
}
for (int &i = cur[u]; i < deg[u]; ) {
// cerr << u << ' ' << cur[u] << ' ' << deg[u] << "\n";
int v = query(++i);
edge[u].push_back(v);
if (!instk[v]) fa[v] = u;
// cerr << "2 : " << u << " -> " << v << ' ' << (v == fa[u] ? u : 0) << endl;
dfs(v, v == fa[u] ? u : 0);
}
if (son == -1) {
for (int i = 0; i < (int)edge[u].size(); i++) {
int v = edge[u][i];
if (v == fa[u]) query(i + 1);
}
}
if (--cnt[u] == 0) instk[u] = false;
}
void solve() {
n = 0;
int root; cin >> root >> deg[1];
dfs(1, 0);
cout << "!";
for (int i = 1; i <= n; i++) {
for (auto j : edge[i]) {
if (i < j) cout << ' ' << i << ' ' << j;
}
}
cout << endl;
string Correct; cin >> Correct;
for (int i = 1; i <= n; i++) {
deg[i] = cur[i] = cnt[i] = vis[i] = instk[i] = fa[i] = 0;
edge[i].clear();
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int tt = 1;
cin >> tt;
while (tt--) {
solve();
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3456kb
input:
2 1 1 2 1 1 1 2 1 1 1 Correct 1 3 2 2 1 3 2 2 4 2 1 3 3 1 1 3 3 1 1 3 4 2 2 2 4 2 2 2 1 3 Correct
output:
> 1 > 1 > 1 > 1 ! 1 2 > 1 > 1 > 1 > 2 > 1 > 2 > 1 > 2 > 1 > 3 > 2 > 2 > 2 > 1 ! 1 2 1 3 1 4 2 4
result:
ok correct! (2 test cases)
Test #2:
score: -100
Runtime Error
input:
1000 1 9 2 7 1 9 2 7 3 9 1 9 3 9 4 9 1 9 4 9 3 9 4 9 7 7 1 9 5 8 1 9 5 8 8 8 1 9 6 9 1 9 6 9 2 7 10 6 1 9 7 7 4 9 7 7 8 8 5 8 8 8 10 6 2 7 10 6 8 8 9 8 1 9 8 8 7 7 5 8 9 8 3 9 9 8 5 8 2 7 6 9 10 6 4 9 10 6 6 9 5 8 3 9 2 7 3 9 5 8 6 9 8 8 3 9 10 6 3 9 8 8 6 9 3 9 7 7 3 9 6 9 9 8 2 7 5 8 7 7 9 8 8 8 9...
output:
> 1 > 1 > 1 > 2 > 1 > 2 > 2 > 1 > 3 > 2 > 2 > 3 > 1 > 4 > 1 > 4 > 2 > 1 > 5 > 1 > 5 > 2 > 3 > 1 > 6 > 2 > 3 > 3 > 2 > 2 > 3 > 2 > 3 > 3 > 4 > 1 > 7 > 5 > 4 > 3 > 2 > 3 > 3 > 4 > 4 > 3 > 4 > 4 > 5 > 4 > 5 > 4 > 2 > 5 > 6 > 5 > 6 > 6 > 6 > 7 > 7 > 6 > 8 > 5 > 9 > 7 > 4 > 5 > 7 > 6 > 5 > 4 > 6 > 7 > 8 ...