こんにちは, Shinoryoです.
今回はトヨタ自動車プログラミングコンテスト2023#4(AtCoder Beginner Contest 311)を, Pythonで解いてみた結果を書き連ねていこうと思います.
Toyota Programming Contest 2023#4(AtCoder Beginner Contest 311) - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
A - First ABC
「Aが出現したか」「Bが出現したか」「Cが出現したか」のフラグ管理で解くことができます.
B - Vacation Together
順番に全員が暇かを確かめていくことで解くことができます.
C - Find it!
頂点$1$から$A_i$の指示にしたがって移動し続けていれば, いつかはサイクルに行き着くことになります.
サイクルに行き着いたかの判定は, 通った頂点を記録する列$S$に次の頂点が含まれるかで判定します. そして, $S$の要素のうち, 次の頂点が入っているインデックスから先を出力すればよいです.
サイクルの要素を順番に出力するために, $S$はlist()
として記録しておく必要があります. しかし, $S$に次の頂点が含まれるかの判定をlist()
でやっているとTLEとなってしまいます.
この問題は, $S$をset()
としても記録しておき, $S$に次の頂点が含まれるかの判定をset()
で行うことで解決できます.
D - Grid Ice Floor
到達可能なマスを幅優先探索(breadth first search; BFS)で調べていくことで解くことができます. プレイヤーは岩のマスにぶつかるまでその方向に移動することになるので, 止まった場所を記録しておく配列と通過した場所を記録しておく配列は別にしておくことがポイントです.
幅優先探索は以下でも取り上げています.
AtCoder Beginner Contest 177をPythonで解く-Shinoryo's Weblog
こんにちは, Shinoryoです. 今回は AtCoder Beginner Contest 177 を, Pythonで解いてみた結果を書 き連ねていこうと思います. AtCoder Beginner Contest 177 - AtCoder AtCoder is...
CodeQUEEN 2023 予選 (AtCoder Beginner Contest 308)をPythonで解く-Shinoryo's Weblog
こんにちは, Shinoryoです. 今回は CodeQUEEN 2023 予選 (AtCoder Beginner Contest 308) を, Pythonで解いてみた結果を書き連ねていこうと思います. AtCoder Beginner Contest 308 ...
ACL Beginner ContestをPythonで解く-Shinoryo's Weblog
こんにちは, Shinoryoです. 今回は ACL Beginner Contest を, Pythonで解いてみた結果を書き連ねていこうと思います. ACL Beginner Contest - AtCoder AtCoder is a programming c...
AtCoder Beginner Contest 176をPythonで解く-Shinoryo's Weblog
こんにちは, Shinoryoです. 今回は AtCoder Beginner Contest 176 を, Pythonで解いてみた結果を書 き連ねていこうと思います. AtCoder Beginner Contest 176 - AtCoder AtCoder is...
E以降
E以降は私の能力不足故に省略いたします.
参考にしたサイト等
- 「解説 - トヨタ自動車プログラミングコンテスト2023#4(AtCoder Beginner Contest 311)」
Editorial - Toyota Programming Contest 2023#4(AtCoder Beginner Contest 311)
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
- kusano_t様による「[Python]2次元配列の要素の和を求める」
[Python]2次元配列の要素の和を求める - Qiita
2次元配列の要素の和を求めたくなった. ただし, numpyが使えない環境で. 参考: numpyを使う場合import numpy as np# [0, 1]の100×100の配列 twod_a…
0 件のコメント:
コメントを投稿 (Please feel free to ask me about your questions! You can use Japanese or English in the comments.)