blog.bouzuya.net

2020-09-05 全国統一プログラミング王決定戦予選 A, B, C / 『ししりばの家』・『などらきの首』

全国統一プログラミング王決定戦予選 A, B, C 考察

nikkei2019-qual A - Subscribers

両方を読んでいる数の最大は AB の小さいもの。最小は A を読んでいない人に最大限 B を割り当ててはみでた分 (B - (N - A) = A + B - N) で 0 以上の範囲のもの。

Rust で usize で確保しているとマイナスになると RE になるので注意する (saturating_sub を使える)。

https://atcoder.jp/contests/nikkei2019-qual/submissions/16516372

nikkei2019-qual B - Touitsu

先頭から順に 3 つの文字列の同じ位置の文字を比較する。 3 文字が同じなら +0 で 2 文字が同じなら +1 そうでないなら +2 。最後まで走査すれば求まる。 N <= 100 なので O(N) で間に合う。

https://atcoder.jp/contests/nikkei2019-qual/submissions/16516517

A より解きやすく感じた。

nikkei2019-qual C - Different Strokes

証明なし。 A 側だと考えたとき自分を大きくしたいので A_i のなるべく大きいものを選びたいし相手を小さくしたい (大きいものを取らせたくない) ので B_i のなるべく大きいものを取ると良さそうだ。 A_i + B_i の降順で並び替えてあとは指示通りのシミュレーションすると良い。ソート部分が O(NlogN)N <= 10^5 なので間に合う。

https://atcoder.jp/contests/nikkei2019-qual/submissions/16516743


『ししりばの家』・『などらきの首』を読んだ。


リングフィットアドベンチャーを続けている。