貝印のピーラーが届いた。なぜか家のピーラーがなくなったので買い直した。
AtCoder Beginner Contest 224
- A - Tires
https://atcoder.jp/contests/abc224/tasks/abc224_a
- 提出: https://atcoder.jp/contests/abc224/submissions/46904174
if s.ends_with("er") { "er" } else if s.ends_with("ist") { "ist" } else { unreachable!() };
- B - Mongeness
https://atcoder.jp/contests/abc224/tasks/abc224_b
- 提出: https://atcoder.jp/contests/abc224/submissions/46904358
- i_1, i_2, j_1, j_2 を指示通りにすべて試す
- C - Triangle?
https://atcoder.jp/contests/abc224/tasks/abc224_c
- 提出: https://atcoder.jp/contests/abc224/submissions/46905131
- 3 点が同一直線になるとき以外を数えれば良い
- D - 8 Puzzle on Graph
https://atcoder.jp/contests/abc224/tasks/abc224_d
- 提出: https://atcoder.jp/contests/abc224/submissions/46906435
- 状態数も遷移も少ない
- 状態ごとに最小の操作回数回数を保持する
- 初期状態から BFS で未遷移の状態に遷移していけば良い
- E - Integers on Grid
https://atcoder.jp/contests/abc224/tasks/abc224_e
- 未着手
- F - Problem where +s Separate Digits
https://atcoder.jp/contests/abc224/tasks/abc224_f
- 未着手
- G - Roll or Increment
https://atcoder.jp/contests/abc224/tasks/abc224_g
- 未着手
- H - Security Camera 2
https://atcoder.jp/contests/abc224/tasks/abc224_h
- 未着手
use std::collections::{HashMap, HashSet, VecDeque}; use proconio::{input, marker::Usize1}; fn main() { input! { m: usize, uv: [(Usize1, Usize1); m], p: [Usize1; 8] }; let p = { let set = p.iter().copied().collect::<HashSet<usize>>(); let none = (0..9).find(|i| !set.contains(i)).unwrap(); let mut v = vec![10; 9]; for (i, p_i) in p.into_iter().chain(std::iter::once(none)).enumerate() { v[p_i] = i; } v }; let mut map = HashMap::new(); let mut deque = VecDeque::new(); map.insert(p.clone(), 0_i64); deque.push_back(p); while let Some(p) = deque.pop_front() { let count = map[&p]; for (u, v) in uv.iter().copied() { if p[u] != 8 && p[v] != 8 { continue; } let mut p = p.clone(); p.swap(u, v); if map.contains_key(&p) { continue; } map.insert(p.clone(), count + 1); deque.push_back(p); } } let ans = map.get(&(0..9).collect::<Vec<usize>>()).unwrap_or(&-1); println!("{}", ans); }
今日のコミット。
- kireta 1 commit
- rust-atcoder 1 commit