yukicoder contest 306 作成記

yukicoder contest 306 お疲れさまでした!
テーマは三角形でした。△△△そのままという洒落です。
思ったより全完でなくて驚きました。後半 $3$ 問は個人差がありそうと tester さんとも話してたのですが、本当にその通りになりました。 各問題について書きたいことを書いていきます。

A: 三角形の面積

easy 枠。AtCoderF - コラッツ問題 にちょっと影響を受けた。

B: 三角形の制作

もともと $r_i = \max(r_i, g_j, b_k)$ はなかったが、本質がこの問題っぽいので難易度調整の意味も込めてこちらで出題。

C: 三角形の反射

もともと「$A$ に戻ってくるまでに反射する辺すべて順番に列挙 + 反射回数」だったが、まず点 $B, C$ で反射するのはまずいということで止まることに、その改変時に同時に列挙から回数を聞く問題になった。幾何に見せた算数問題に見せかけて僕は辺全部列挙して解いています。

D: 三角形の質問

区間についてのクエリが二次元に落とせるのすごいなと思い、2D クエリ用のデータ構造は 2D セグ木しか持ってなかったので更新ありで出題。tester さんが pypy 2D BIT を書いてくださり、かなり早く驚いた。逆に愚直 $10^{10}$ かなり遅くて驚いた。

E: 三角形の構築

No.1143 面積Nの三角形 - yukicoder 知っていると結構楽そう。というかインスパイア元です。かなり問題の見た目がきれいで、丁寧丁寧に式変形すれば解けて好き。

F: 三角形の成立

これがこのセットの中で最初に生えました。嘘解法とともに... hotman さんのご指摘があり、しばらく放置してたのですがあるときいきなり解けてセットを組もうとなりました。シンプルでそこそこ難易度があってかなり好き。