Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
28194 | gaochunzhen | 【BJ】T2 | C++ | 通过 | 100 | 1 MS | 264 KB | 840 | 2024-04-04 21:37:04 |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 49; vector<int> G[N]; int _, n, K, vis[N]; void dfs(int u, int fa) { int cnt = 0; for (int v : G[u]) { if (v == fa) continue; dfs(v, u); if (vis[v] < 0) {cnt = -1; break;} else if (vis[v]) cnt++; } if (cnt > 1 || cnt < 0) vis[u] = -1; else vis[u] = !cnt; } int main() { scanf("%d", &_); while (_--) { scanf("%d%d", &n, &K); for (int i = 1; i <= n; i++) G[i].clear(), vis[i] = 0; for (int i = 1; i < n; i++) { int u, v; scanf("%d%d", &u, &v); G[u].push_back(v), G[v].push_back(u); } dfs(1, 0); if (vis[1] || K < (n >> 1) - 1) printf("Alice\n"); else printf("Bob\n"); } return 0; }