勉強の記録

機械学習、情報処理について勉強した事柄など

2019-04-01から1ヶ月間の記事一覧

LeetCode 1036 - Escape a Large Mazeの別解(?)

https://leetcode.com/contest/weekly-contest-134/submissions/detail/225394673/ 問題設定自体は普通の迷路と同じだが,迷路のサイズが106と巨大. 普通にdfsやbfsをしていたのでは到底終わらない. 逆にblocked cellは合計200個以下という制約がある 考え…

Google Code Jam Round1B 通過

Round 1Aは通過できなかったが,1Bで通過できた.深夜ラウンド辛い....日本は幸い翌日が休日なので参加できた. Visibleを通ってUnvisibleを通らないコードもUnvisible正解時のpenaltyになるので,少し考えてunvisibleも通せそうならその解法でいった方が良…

二分探索のための遅延評価リストを作った

docs.python.org 標準ライブラリに二分探索が用意されているが,sortと違ってkeyが指定できない. 毎回二分探索を書いても良いが,境界条件などで足を救われがち. よって,クラス継承の練習を兼ねてgetitemしたときだけfuncで遅延評価されるリストを作った…

Union Findの問題をpythonで解く

グループ分けして、適宜グループを合体させるような局面で登場するデータ構造。 全ノードに対してグループ名自体を持つようすると、合体のたびに少なくとも一方のグループをすべて書き換える必要があって、時間がかかる。ツリー構造で持っておいて、グループ…

Google CodeJamをVSC上でデバッグする

Qualification RoundはAtCoderのコードテストを間借りしてコーディングしたのだけど、やっぱりVisual Studio Codeを使いたい。 input()だけ書き換えて、printと想定解を目でみて比較すればよいのだけど、 'Case' → 'CASE' ': ' → ':' あたりでWAになったこと…

Google Code Jam 2019 Qualification Round 全完でした

codingcompetitions.withgoogle.com Foregone Solution 任意の一例を構築すれば良いだけなので適当に。 T = int(input()) N = [input() for _ in range(T)] for i, n in enumerate(N): A = '' B = '' for d in n: if d=='4': A+='2' B+='2' else: A+=d B+='0…