提出 #57058599
ソースコード 拡げる
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
k: usize,
ab: [(Usize1, Usize1); n - 1],
v: [Usize1; k],
}
let r = v[0];
let g = {
let mut g = vec![vec![]; n];
for &(a, b) in &ab {
g[a].push(b);
g[b].push(a);
}
g
};
let par = par(&g, r);
let mut used = vec![false; n];
for &v in &v {
for u in std::iter::successors(Some(v), |&v| (v < n).then(|| par[v]))
.take_while(|&u| u < n)
{
if used[u] {
break;
}
used[u] = true;
}
}
let res = used.iter().filter(|&&u| u).count();
println!("{res}");
}
fn par(g: &[Vec<usize>], r: usize) -> Vec<usize> {
fn dfs(g: &[Vec<usize>], v: usize, pv: usize, par: &mut [usize]) {
for &nv in g[v].iter().filter(|&&nv| nv != pv) {
par[nv] = v;
dfs(g, nv, v, par);
}
}
let n = g.len();
let mut res = vec![n; n];
dfs(g, r, n, &mut res);
res
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Minimum Steiner Tree |
| ユーザ | rsk0315 |
| 言語 | Rust (rustc 1.70.0) |
| 得点 | 425 |
| コード長 | 1125 Byte |
| 結果 | AC |
| 実行時間 | 81 ms |
| メモリ | 33784 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 | 1872 KiB |
| random_01.txt | AC | 51 ms | 23404 KiB |
| random_02.txt | AC | 54 ms | 23548 KiB |
| random_03.txt | AC | 81 ms | 33784 KiB |
| random_04.txt | AC | 81 ms | 32176 KiB |
| random_05.txt | AC | 39 ms | 25224 KiB |
| random_06.txt | AC | 41 ms | 24900 KiB |
| random_07.txt | AC | 43 ms | 25000 KiB |
| random_08.txt | AC | 48 ms | 24896 KiB |
| random_09.txt | AC | 71 ms | 23572 KiB |
| random_10.txt | AC | 73 ms | 23372 KiB |
| random_11.txt | AC | 45 ms | 24704 KiB |
| random_12.txt | AC | 48 ms | 25280 KiB |
| random_13.txt | AC | 44 ms | 26164 KiB |
| random_14.txt | AC | 2 ms | 3132 KiB |
| random_15.txt | AC | 2 ms | 2996 KiB |
| random_16.txt | AC | 16 ms | 10300 KiB |
| random_17.txt | AC | 50 ms | 22148 KiB |
| random_18.txt | AC | 16 ms | 10564 KiB |
| random_19.txt | AC | 47 ms | 21016 KiB |
| random_20.txt | AC | 37 ms | 19748 KiB |
| random_21.txt | AC | 31 ms | 17412 KiB |
| random_22.txt | AC | 38 ms | 19832 KiB |
| random_23.txt | AC | 26 ms | 15676 KiB |
| random_24.txt | AC | 46 ms | 23568 KiB |
| random_25.txt | AC | 41 ms | 23716 KiB |
| random_26.txt | AC | 44 ms | 23684 KiB |
| random_27.txt | AC | 44 ms | 23780 KiB |
| random_28.txt | AC | 45 ms | 23744 KiB |
| random_29.txt | AC | 7 ms | 6156 KiB |
| random_30.txt | AC | 4 ms | 4068 KiB |
| random_31.txt | AC | 12 ms | 9036 KiB |
| random_32.txt | AC | 7 ms | 6176 KiB |
| random_33.txt | AC | 45 ms | 21508 KiB |
| sample_01.txt | AC | 1 ms | 1848 KiB |
| sample_02.txt | AC | 1 ms | 1944 KiB |
| sample_03.txt | AC | 1 ms | 2076 KiB |