提出 #57139107
ソースコード 拡げる
#include <vector>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int main() {
cin.tie(0);
ios_base::sync_with_stdio(false);
int N, K;
cin >> N >> K;
if (N == 1) {
cout << 1 << '\n';
return 0;
}
vector<vector<int> > G(N);
for (int i = 0; i < N - 1; ++i) {
int A, B;
cin >> A >> B; --A, --B;
G[A].push_back(B);
G[B].push_back(A);
}
int bits = 0;
while ((1 << bits) < N) ++bits;
vector<vector<int> > par(bits, vector<int>(N));
vector<int> depth(N), id(N);
int vert_id = 0;
function<void(int, int)> build_tree = [&](int pos, int pre) {
par[0][pos] = pre;
id[pos] = vert_id++;
for (int i : G[pos]) {
if (i == pre) continue;
depth[i] = depth[pos] + 1;
build_tree(i, pos);
}
};
build_tree(0, 0);
for (int i = 1; i < bits; ++i) {
for (int j = 0; j < N; ++j) {
par[i][j] = par[i - 1][par[i - 1][j]];
}
}
function<int(int, int)> lca = [&](int va, int vb) {
if (depth[va] < depth[vb]) swap(va, vb);
for (int i = bits - 1; i >= 0; --i) {
if (depth[va] - depth[vb] >= (1 << i)) {
va = par[i][va];
}
}
if (va == vb) return va;
for (int i = bits - 1; i >= 0; --i) {
if (par[i][va] != par[i][vb]) {
va = par[i][va];
vb = par[i][vb];
}
}
return par[0][va];
};
int Q = 1;
//cin >> Q;
for (int i = 0; i < Q; ++i) {
int verts = K;
//cin >> verts;
vector<int> sel(verts);
for (int j = 0; j < verts; ++j) {
cin >> sel[j];
--sel[j];
}
sort(sel.begin(), sel.end(), [&](int va, int vb) {
return id[va] < id[vb];
});
int answer = 0;
for (int j = 0; j < verts; ++j) {
answer += depth[sel[j]];
answer -= depth[lca(sel[j], sel[(j + 1) % verts])];
}
cout << answer + 1 << '\n';
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Minimum Steiner Tree |
| ユーザ | kaichou243 |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 425 |
| コード長 | 1820 Byte |
| 結果 | AC |
| 実行時間 | 106 ms |
| メモリ | 46024 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 425 / 425 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| min.txt | AC | 1 ms | 3460 KiB |
| random_01.txt | AC | 64 ms | 29784 KiB |
| random_02.txt | AC | 63 ms | 29836 KiB |
| random_03.txt | AC | 79 ms | 46024 KiB |
| random_04.txt | AC | 76 ms | 40688 KiB |
| random_05.txt | AC | 52 ms | 30488 KiB |
| random_06.txt | AC | 51 ms | 30620 KiB |
| random_07.txt | AC | 60 ms | 30640 KiB |
| random_08.txt | AC | 65 ms | 30632 KiB |
| random_09.txt | AC | 72 ms | 29776 KiB |
| random_10.txt | AC | 69 ms | 29820 KiB |
| random_11.txt | AC | 87 ms | 29960 KiB |
| random_12.txt | AC | 90 ms | 30192 KiB |
| random_13.txt | AC | 106 ms | 30300 KiB |
| random_14.txt | AC | 4 ms | 4640 KiB |
| random_15.txt | AC | 4 ms | 4364 KiB |
| random_16.txt | AC | 23 ms | 13164 KiB |
| random_17.txt | AC | 61 ms | 27792 KiB |
| random_18.txt | AC | 23 ms | 13460 KiB |
| random_19.txt | AC | 55 ms | 26580 KiB |
| random_20.txt | AC | 49 ms | 24960 KiB |
| random_21.txt | AC | 43 ms | 22036 KiB |
| random_22.txt | AC | 49 ms | 24972 KiB |
| random_23.txt | AC | 39 ms | 19668 KiB |
| random_24.txt | AC | 60 ms | 29776 KiB |
| random_25.txt | AC | 61 ms | 29780 KiB |
| random_26.txt | AC | 62 ms | 29740 KiB |
| random_27.txt | AC | 61 ms | 29724 KiB |
| random_28.txt | AC | 61 ms | 29728 KiB |
| random_29.txt | AC | 10 ms | 8100 KiB |
| random_30.txt | AC | 6 ms | 5460 KiB |
| random_31.txt | AC | 18 ms | 11588 KiB |
| random_32.txt | AC | 10 ms | 8152 KiB |
| random_33.txt | AC | 55 ms | 27176 KiB |
| sample_01.txt | AC | 1 ms | 3404 KiB |
| sample_02.txt | AC | 1 ms | 3328 KiB |
| sample_03.txt | AC | 1 ms | 3428 KiB |