QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#108525 | #3846. Link-Cut Tree | woxiangbaile# | TL | 4ms | 5864kb | C++14 | 1.6kb | 2023-05-25 13:53:07 | 2023-05-25 13:53:08 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define rep(i, s, e) for (int i = s; i <= e; ++i)
#define drep(i, s, e) for (int i = s; i >= e; --i)
#define file(a) freopen(#a".in", "r", stdin), freopen(#a".out", "w", stdout)
#define pv(a) cout << #a << " = " << a << endl
#define pa(a, l, r) cout << #a " : "; rep(_, l, r) cout << a[_] << ' '; cout << endl
const int N = 1e5 + 10;
int read() {
int x = 0, f = 1; char c = getchar();
for (; c < '0' || c > '9'; c = getchar()) if (c == '-') f = -1;
for (; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - 48;
return x * f;
}
int n, m, x[N], y[N];
vector <pair <int, int>> e[N];
int fa[N];
int get(int u) { return u == fa[u] ? u : fa[u]; }
bool merge(int u, int v) {
if (get(u) == get(v)) return false;
fa[get(v)] = get(u);
return true;
}
int st[N], top, cur[N];
void dfs(int u, int fa, int t) {
if (u == t) {
rep(i, 1, top) cur[i] = st[i];
sort(cur + 1, cur + top + 1);
rep(i, 1, top) printf("%d ", cur[i]);
return;
}
for (auto [v, i] : e[u]) if (v != fa) {
st[++ top] = i, dfs(v, u, t), -- top;
}
}
void solve() {
n = read(), m = read();
rep(i, 1, n) e[i].clear(), fa[i] = i;
rep(i, 1, m) x[i] = read(), y[i] = read();
rep(i, 1, m) {
if (merge(x[i], y[i])) {
e[x[i]].emplace_back(make_pair(y[i], i));
e[y[i]].emplace_back(make_pair(x[i], i));
continue;
}
top = 0, dfs(x[i], 0, y[i]);
printf("%d\n", i);
return;
}
printf("-1\n");
}
int main() {
for (int tc = read(); tc; -- tc) solve();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 4ms
memory: 5864kb
input:
2 6 8 1 2 2 3 5 6 3 4 2 5 5 4 5 1 4 2 4 2 1 2 4 3
output:
2 4 5 6 -1
result:
ok 2 lines
Test #2:
score: -100
Time Limit Exceeded
input:
1658 9 20 6 4 5 8 1 7 2 3 3 8 3 1 4 8 5 3 7 6 1 6 4 9 4 1 9 3 2 5 4 5 8 9 1 8 4 2 5 7 3 6 14 78 13 12 10 8 2 10 6 13 2 14 13 1 14 10 9 6 2 13 8 3 9 8 5 6 14 12 8 1 9 14 9 5 12 6 5 10 3 12 10 4 8 5 9 10 6 8 1 6 12 4 3 13 1 5 10 3 13 9 10 13 2 5 4 7 7 1 7 6 9 3 2 12 1 10 9 1 1 14 3 1 3 4 11 1 11 6 7 1...
output:
2 4 5 1 2 3 4 5 5 6 7 9 1 1 2 3 3 4 5 5 5 6 6 7 7 9 9 1 1 1 2 3 3 3 4 5 5 5 5 6 6 6 7 7 7 9 9 9 1 1 1 1 2 3 3 3 3 4 5 5 5 5 5 6 6 6 6 7 7 7 7 9 9 9 9 1 1 1 1 1 2 3 3 3 3 3 4 5 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 9 9 9 9 9 1 1 1 1 1 1 2 3 3 3 3 3 3 4 5 5 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 9 9 9 9 9 9 1 1 1 ...