記事を書く前に解いた 7 問です。
2020-08-21
8 / 24 Keitai Message
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4779575#1
9 / 24 お姫様のギャンブル
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4779593#1
AOJ−ICPC さん、はじめは(主にコンパイルを通すのが)かなり辛かったのですが、なれてきました。(?)
10 / 24 koukyoukoukokukikou
http://judge.u-aizu.ac.jp/onlinejudge/user.jsp?id=ngtkana#1
std::iter::dedup_by_key
をつかいました。
まず浮かんだのは itertools::Itertools::group_by
です。Itertools
の自作は、アルゴリズム的な難しさとの相対で、かなり骨が折れそうですから、できれば使わせていただきたい気持ちです。
11 / 24 被験者の選定
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4779732#1
no method named copied
in std::slice::iter
ですって?
Vec<_>` を入力できるようにしました。
pub fn read_vec<T: ::std::str::FromStr>(&mut self, len: usize) -> Vec<T> where <T as ::std::str::FromStr>::Err: ::std::fmt::Debug, { (0..len).map(|_| self.read::<T>()).collect() }
Itertools
が使えないのが辛いので、それに似たものを追加し始めました。
いまのところは ajacent のみです。
impl<I: Iterator> Seq for I {} pub trait Seq: Iterator + Sized { fn adjacent(self) -> Adjacent<Self, Self::Item> where Self::Item: Clone, { adjacent(self) } }
2020-08-22
12 / 24 幸運の操作者
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4780441#1
13 / 24 入学試験
ない
error[E0425]: cannot find function `Reverse` in module `std::cmp`
しかし、すでにとっくに標準に入っているものを AOJ のためだけに作るのも億劫ですし、うーん。ただよく使うものですから、作っても良いかもしれません。
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4780511#1
14 / 24 Kagisys
入力を HashMap
等の FromIterator
な型でジェネリックに受け取れると嬉しそうかなと思ったのですが、そこまで困っているわけではありませんから、先送りです。
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4780529#1
15 / 24 次期町長
はじめ意味がよくわからなくて飛ばしていたのを回収しました。AOJ-ICPC に慣れてきました。
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4780543#1
2020-08-26
16 / 24 踏み台昇降
やっっぱり adjacent()
は作ってよかったです。使用頻度がとてもたかいです。
let ans = a .iter() .adjacent() .filter(|(s, t)| s.as_bytes()[1] == t.as_bytes()[1]) .count();
はい、恒例のコンパイルエラーのコーナーです。当時は参照周りのパターンマッチの柔軟性が少なかったようですね。(むしろ今なぜできるのかよくわかっていないのですが、参照周りの便利な謎型強制シリーズでしょうか。)
error[E0308]: mismatched types --> rep/code.rs:127:22 | 127 | .filter(|(s, t)| s.as_bytes()[1] == t.as_bytes()[1]) | ^^^^^^ expected reference, found tuple | = note: expected type `&(&std::string::String, &std::string::String)` found type `(_, _)` error: aborting due to previous error
17 / 24 太郎君の買物
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4796249
こういうたぐい、しゃくとり法は辛いですが、全探索ならば悪くないかもです。
if let Some(ans) = a .iter() .enumerate() .map(|(i, &x)| a[i + 1..].iter().map(move |&y| x + y)) .flat_map(|z| z) .filter(|&z| z <= cap) .max()
ちなみに恒例の警告です。
warning: called `flat_map(|x| x)` on an `Iterator`
18 / 24 When Can We Meet?
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4796574
ついに迎合してしまいました。
pub struct Reverse<T>(pub T);
19 / 24 所得格差
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4796588#1
20 / 24 Get Many Persimmon Trees
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4797102#1
ngtio を新しくしたい気持ちになりました。Mutex
と Once
を駆使してグローバルに標準出力をポン起きすることはできましたから、今回のところはいったんやめです。またがんばりましょう。
21 / 24 阿吽の呼吸
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4797122#1
22 / 24 Koto市営地下鉄
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4797174#1
23 / 24 カレー作り
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4797159#1
24 / 24 改元
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=4797201#1
ngtio にプリミティブ用の短縮メソッドをはやしました。
u128
なんてもう自体遅れ了解です。
error: 128-bit type is unstable (see issue #35118)
感想
環境構築をする回という感じでした。