AtCoder Beginner Contest ABC407 解法メモ
文中で使用しているのは、PythonライクでAtCoderに最適な言語の1つNimです
ABC407
ABC407A - Approximation
解法
A/Bを四捨五入をすればよい
ACコード
ABC407B - P(X or Y)
解法
条件を満たす度に
ACコード
ABC407C - Security 2
解法
ボタン
ただし、
(S[i]+10-S[i+1]) mod 10としておくとよい
ACコード
ABC407D - Domino Covering XOR
解法
制約から、ドミノの置き方を全列挙し、その際の残った
ドミノの配置の全列挙には、
現在のマスと、どのマスにドミノが置かれているかの配列を持ちながら再帰関数を回していけばよく、
再帰の中で、
- 今のマスと下のマスにドミノを置く
- 今のマスと右のマスにドミノを置く
- 今のマスにはドミノを置かない
に分岐させていけばよい
左上を始点に順に進め、右下まで到達したら、その都度、ドミノのない
ACコード
メモ
全列挙かとは思いつつも確信が持てず、実装が重くなりそうに感じて躊躇し、再帰関数まで考えが至らなかった
ABC407E - Most Valuable Parentheses
解法
正しい括弧列は全体でみると"("と")"が同数で、先頭からのどの部分列でも")"が"("より多くならない
先頭は必ず"("で、最後は必ず")"なので、
その間を、左から
この操作はHeapQueueでの実装が適している
ACコード
メモ
先頭からみると"("が先行する、というところから考え始めたが、
Discussion