[Python] ABC014 B
問題 B - 価格の合計 回答 ビット演算 >> で1ビットずつずらしながら、& でそのビットが立っているかを確認します。 Python ビット演算 超入門 n, X = map(int, input().split()) a =...
Freedom is a responsible choice.
問題 B - 価格の合計 回答 ビット演算 >> で1ビットずつずらしながら、& でそのビットが立っているかを確認します。 Python ビット演算 超入門 n, X = map(int, input().split()) a =...
問題 A - けんしょう先生のお菓子配り 回答 a = int(input()) b = int(input()) remainder = a % b shortage = 0 if remainder > 0: shortage = b - ...
問題 D – 阿弥陀 回答 ダブリング ダブリングとは、 2倍することをlogN 回繰り返すことで Nに到達できることを利用する手法です。 繰り返し 2 乗法 ( バイナリ法 ) あみだくじにはダブリングの手法が適用できま...
問題 D – 阿弥陀 回答 30点回答 前回の方法で一つのあみだくじであれば解くことができるので、次にあみだくじを複数つなげることを考えます。 一つのあみだくじの開始地点から到達地点への変換を辞書に記憶し、この辞書による変換を複数回一つ...
問題 D - 阿弥陀 10点回答 10点の回答を理解するのに1時間ぐらいかかった…。 あみだくじは、「置換」の問題として考えることができます。 横線は「互換」に相当して、その「互換」の組み合わせ、つまり「リストの要素の交換」で単体のあみだくじは考え...
問題 C - 節制 回答 100点回答 解説を見ると全く難しくないんだが、問題を見て日に沿ってループと決めてかかってしまう視野の狭い自分には解けなかった。 解説のスライドp18以後、分かりやすいです。 N, H...
問題 C - 節制 回答 全探索を書いたつもりでしたが、 満腹度が0以下を切り捨てる処理で、40点取れてしまいました。 N, H = map(int, input().split()) A, B, C, D, E = map(int, input().s...
問題 B - 錠 回答 前方向と後ろ方向に全探索します。 a = int(input()) b = int(input()) def next_digit(num): if num == 9: return 0 else...
問題 A - A 回答 ord で Unicode コードポイント に変換して引き算します。 X = input() ans = ord(X) - ord('A') + 1 print(ans) 辞書で対応表を作成します。 X = inp...
問題 D - バスと避けられない運命 ワーシャルフロイド ワーシャル–フロイド法(英: Warshall–Floyd Algorithm)は、重み付き有向グラフの全ペアの最短経路問題を多項式時間で解くアルゴリズムである。 出典: フリー百科事典『ウィキペデ...