2022-11-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 272 D

https://atcoder.jp/contests/abc272/tasks/abc272_dどこへ進めるかはナイーブに実装しても十分に間に合いますね。 何歩で行けるかはQueueを使えばよいですが、RustではVecDequeというcollectionを使うようです。 // Root M Leaper #![allow(non_snake_case)…

AtCoder Beginner Contest 273 D

https://atcoder.jp/contests/abc273/tasks/abc273_dこれも行と列で分けて考えることができます。 壁の座標を各行、各列で格納します。 その際に二分探索をするのでソートしますが、HashMapの中のVecをどうソートしていいのか分からなかったので、新たにHash…

AtCoder Beginner Contest 274 D

https://atcoder.jp/contests/abc274/tasks/abc274_dx軸とy軸で分けて考えればよいです。 あと、flattenがちゃんとあるんですね。 // Robot Arms 2 #![allow(non_snake_case)] use std::collections::HashSet; fn read<T: std::str::FromStr>() -> T { let mut line = String::new(</t:>…

AtCoder Beginner Contest 275 D(3)

https://atcoder.jp/contests/abc275/tasks/abc275_dmemoizeというcrateを使えば簡単です。 ただ、AtCoderでは使えないようです。 // Yet Another Recursive Function #![allow(non_snake_case)] use memoize::memoize; fn read<T: std::str::FromStr>() -> T { let mut line = Str</t:>…

AtCoder Beginner Contest 275 D(2)

https://atcoder.jp/contests/abc275/tasks/abc275_d構造体にメモを置けばそんなに気持ち悪くないと思います。 // Yet Another Recursive Function #![allow(non_snake_case)] use std::collections::HashMap; fn read<T: std::str::FromStr>() -> T { let mut line = String::new(</t:>…

AtCoder Beginner Contest 275 D

https://atcoder.jp/contests/abc275/tasks/abc275_dABCのD問題を解いていきます。 単なるメモ化の問題ですが、Rustではグローバル変数が難しいので、みっともないですが関数にメモを渡します。 // Yet Another Recursive Function #![allow(non_snake_case)…

AtCoder Beginner Contest 270 C

https://atcoder.jp/contests/abc270/tasks/abc270_c各点のXからの距離を調べて、Yからトレースバックします。 Yにたどり着いたら距離を調べるのを打ち切ってもいいのですが、これでも十分速いです。 // Simple path #![allow(non_snake_case)] fn read<T: std::str::FromStr>() -></t:>…

AtCoder Beginner Contest 271 C

https://atcoder.jp/contests/abc271/tasks/abc271_cBTreeSetを使って、一つずつtreeにinsertして、重複分は十分大きな値にしてinsertします。 最初はVecを使って実装しましたが、そちらの方が速かったようです。 // Manga #![allow(non_snake_case)] use st…