Submission #1869341
Source Code Expand
#include <iostream> #include <set> #include <vector> #include <queue> #include <algorithm> using namespace std; int N, Q; int deg[100000]; int par[100000]; vector<vector<int>> child; int lca(int a, int b) { if (deg[b] < deg[a]) swap(a, b); while (deg[b] - deg[a] > 0) b = par[b]; if (a == b) return a; while (a != b) { a = par[a]; b = par[b]; } return a; } int main(void) { cin >> N; child.resize(N); for (int n = 0; n < (N - 1); ++n) { int a, b; cin >> a >> b; --a; --b; child[a].push_back(b); child[b].push_back(a); } int root = 0; par[root] = -1; queue<pair<int, int>> q; q.emplace(root, 0); while (!q.empty()) { pair<int, int> p = q.front(); q.pop(); int id = p.first; int d = p.second; for (int s = 0; s < child[id].size(); ++s) { int c = child[id][s]; if (c == par[id]) continue; deg[c] = d + 1; par[c] = id; q.emplace(c, deg[c]); } } #ifdef LOCAL cin >> Q; vector<pair<int, int>> v; for (int i = 0; i < Q; ++i) { int a, b; cin >> a >> b; --a; --b; v.emplace_back(a, b); } for (int s = 0; s < v.size(); ++s) { pair<int, int> p = v[s]; int a = p.first; int b = p.second; int l = lca(a, b); cout << deg[a] + deg[b] - (deg[l] * 2) + 1 << endl; } #else cin >> Q; for (int i = 0; i < Q; ++i) { int a, b; cin >> a >> b; --a; --b; int l = lca(a, b); cout << deg[a] + deg[b] - (deg[l] * 2) + 1 << endl; } #endif return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 閉路 |
User | k0101 |
Language | C++14 (GCC 5.4.1) |
Score | 30 |
Code Size | 1476 Byte |
Status | TLE |
Exec Time | 2104 ms |
Memory | 7040 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 0 / 70 | ||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt |
Subtask2 | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 1 ms | 256 KB |
subtask0_sample02.txt | AC | 1 ms | 256 KB |
subtask0_sample03.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 70 ms | 6528 KB |
subtask1_02.txt | AC | 70 ms | 6528 KB |
subtask1_03.txt | AC | 1 ms | 256 KB |
subtask1_04.txt | AC | 1 ms | 256 KB |
subtask1_05.txt | AC | 2 ms | 256 KB |
subtask1_06.txt | AC | 2 ms | 256 KB |
subtask1_07.txt | AC | 81 ms | 6656 KB |
subtask1_08.txt | AC | 83 ms | 6656 KB |
subtask1_09.txt | AC | 82 ms | 6528 KB |
subtask1_10.txt | AC | 77 ms | 6528 KB |
subtask1_11.txt | AC | 85 ms | 6528 KB |
subtask1_12.txt | AC | 82 ms | 6528 KB |
subtask2_01.txt | TLE | 2104 ms | 6528 KB |
subtask2_02.txt | TLE | 2104 ms | 6528 KB |
subtask2_03.txt | AC | 212 ms | 384 KB |
subtask2_04.txt | AC | 205 ms | 512 KB |
subtask2_05.txt | AC | 224 ms | 640 KB |
subtask2_06.txt | AC | 251 ms | 640 KB |
subtask2_07.txt | AC | 316 ms | 7040 KB |
subtask2_08.txt | AC | 322 ms | 6912 KB |
subtask2_09.txt | AC | 372 ms | 6912 KB |
subtask2_10.txt | AC | 454 ms | 6912 KB |
subtask2_11.txt | AC | 565 ms | 6912 KB |
subtask2_12.txt | AC | 514 ms | 6912 KB |