AtCoder をやめるべきか迷っている。
adt_easy_20240312_3 : AtCoder Daily Training EASY 2024/03/12 19:30start
- A - Bitwise Exclusive Or https://atcoder.jp/contests/adt_easy_20240312_3/tasks/abc213_a
- B - Takahashi san
https://atcoder.jp/contests/adt_easy_20240312_3/tasks/abc325_a
- 提出: https://atcoder.jp/contests/adt_easy_20240312_3/submissions/51227057
println!("{} san", s);
- C - Inverse Prefix Sum
https://atcoder.jp/contests/adt_easy_20240312_3/tasks/abc280_b
- 提出: https://atcoder.jp/contests/adt_easy_20240312_3/submissions/51227161
- s_i の連続する 2 要素の差を a とすれば良い
- 最初には
0
という要素があるものとして扱う
- D - The Middle Day
https://atcoder.jp/contests/adt_easy_20240312_3/tasks/abc315_b
- 提出: https://atcoder.jp/contests/adt_easy_20240312_3/submissions/51227263
- 指示通りに d の sum を 2 で割った値を求める
- その値がどこにあるかを d を走査して調べる
- E - Ladder Takahashi
https://atcoder.jp/contests/adt_easy_20240312_3/tasks/abc277_c
- 提出: https://atcoder.jp/contests/adt_easy_20240312_3/submissions/51227450
- 到達可能な位置を BTreeSet で管理する
1
から順に BFS (or DFS) して、到達可能な位置を記録する- 到達可能な位置の最大値が答え
use std::collections::{BTreeSet, HashMap, VecDeque}; use proconio::input; fn main() { input! { n: usize, ab: [(usize, usize); n], }; let mut map = HashMap::new(); map.insert(1, Vec::new()); for (a, b) in ab.iter().copied() { map.entry(a).or_insert_with(Vec::new).push(b); map.entry(b).or_insert_with(Vec::new).push(a); } let mut dist = BTreeSet::new(); let mut deque = VecDeque::new(); dist.insert(1); deque.push_back(1); while let Some(u) = deque.pop_front() { for v in map.get(&u).unwrap().iter().copied() { if dist.insert(v) { deque.push_back(v); } } } println!("{}", dist.last().unwrap()); }
今日のコミット。
- bbna 1 commit
- rust-atcoder 1 commit