あるエンジニアのAtCoder奮闘記

東京都港区にあるアミフィアブル株式会社のエンジニアが、AtCoderで解いた問題について振り返ったりしていく会社公認のブログです。

Python

AtCoder ABC 134 E - Sequence Decomposing (Python)

irisruneです。最近晴れることが多くなりましたが、週末を狙って台風が来るのは辛いですね。 問題 atcoder.jp どのようなアプローチで解けばよいかが思いつきにくい問題だと思います。 import sys import bisect import collections def input(): return sys…

AtCoder ABC 134 D - Preparing Boxes (Python)

irisruneです。とりあえずABC134のD,Eはどうにかなりました。 問題 atcoder.jp 計算量の見積りが大変難しい問題です。また、逆から解くというアプローチが求められます。 import sys def input(): return sys.stdin.readline().rstrip() def main(): n = int…

AtCoder AGC 036 A - Triangle (python)

irisruneです。Rustはきちんと勉強してから使わないと厳しい言語だと認識したので、しばらく温めることにします。 問題 atcoder.jp あまりにも数学要素が強い問題ですが、アルゴリズム面でも少々癖があります(というか癖を出してしまいました)。 import sy…

AtCoder ABC 133 E - Virus Tree 2

irisruneです。個人的に以前のABCの4完が最近のABCの5完に相当するように思えるのですが、誰か統計取ったりしているのでしょうか。 問題 atcoder.jp 500点問題の割にアルゴリズムも実装もかなり軽めで、発想系の問題だと思いました。 import sys import coll…

AtCoder ABC 133 D - Rain Flows into Dams

irisruneです。弊社でRustが布教されているので試していますが、気を付けなければいけないことが多い言語なのでなかなか大変ですね。 問題 atcoder.jp 単純な連立方程式を解くだけの問題ですが、規模が大きいので一工夫必要となります。 import sys import n…

AtCoder ABC 133 C - Remainder Minimization 2019

irisruneです。求められるレベルが上がっている感じがあるので競プロの勉強もしたいですが、他にも勉強するべきことがあるので大変ですね。 問題 atcoder.jp うっかりするとWAを出してしまうこともあるかと思いましたが…気のせいかもしれません。実装はB問題…

AtCoder ABC 133 B - Good Distance (Python)

irisruneです。しばらくコンテストは不参加が続きそうですが、今週はB~E問題まで扱う予定です。 問題 atcoder.jp 書いてあることを実装すれば解けますが、B問題にしては実装がやや重いです。 import sys import math import numpy as np def input(): retur…

AtCoder ABC 068 D - Decrease (Contestant ver.) (Python)

irisruneです。流石にABC132Fは難しすぎたので久々に過去問です。 問題 atcoder.jp 操作を行った結果として状態がどのように変わるか、どのような状態が停止状態となるかを把握することが重要です。 import sys import numpy as np def main(): k = int(inpu…

Paiza プログラミング練習問題 S - 文字列収集 (Python)

irisruneです。先週に引き続き2度目のPaiza練習問題記事です。 問題 paiza.jp 前回とは対照的に、Sランク相当ではありますが正解率が高めとなっております。とはいえSランク問題に挑戦するような人が母数なのでそこまで簡単なわけではないです。 import sys …

AtCoder ABC 130 D - Enough Array (Python)

irisruneです。AtCoderで言語アップデートがあるそうで、色々な言語が使いやすくなるといいですね。 問題 atcoder.jp 連続部分列とみると累積和を取りたくなりませんか?累積和を取った場合は二分探索が手っ取り早いと思います。 import sys import bisect i…

AtCoder diverta 2019 Programming Contest 2 B - Picking Up (Python)

irisruneです。今週もコンテストは出ていませんでした、コンテスト開催日時に合わせて色々調整することも考えないといけませんね。 atcoder.jp C問題よりも難しいと感じる人もいたそうです。確かに問題文だけ見るとC問題の方が単純そうには見えました(まだC…

Paiza プログラミング練習問題 A - じゃんけんの手の出し方 (Python)

irisruneです。普段はAtCoderの問題を解いていますが、弊社がPaizaで求人を出していることもあって今回はPaiza プログラミング練習問題を解く記事を出してみました。 問題 paiza.jp (タイトルからわかりにくいと思いますが、問題ページへのリンクです。) A…

AtCoder ABC 129 E - Sum Equals Xor(Python)

irisruneです。最近AtCoder ProblemsのRecommendationsがスパルタに感じてきました。 問題 atcoder.jp 桁DPというヒントを見てしまいましたがほぼ自力です、多分。6/10の記事で実装が重いかと予想していましたが全然重くありませんでした。 import sys impor…

AtCoder ABC 129 D - Lamp Pythonで解けなかったのでJuliaで(Python, Julia)

irisruneです。C問題ではテストケースでトラブルがありましたが、D問題ではPythonの実行時間で少し騒ぎになっていたようですね。 問題 atcoder.jp 公式解説と少しアルゴリズムが違いますが大体同じ解き方です。具体的には、連続する障害物のないマスの数を走…

AtCoder ABC 129 C - Typical Stairs (Python)

irisruneです。今回不参加でしたがトラブルがあって大変だったみたいですね。 問題 atcoder.jp 当のトラブルがあった問題です。問題自体は最近珍しい気もする典型問題です。 import sys import numpy as np MOD = 1000000007 def main(): n, m = [int(x) for…

AtCoder ABC 123 D - Cake 123 をNumpyを用いてスマートに解きたかった話 (Python)

irisruneです。Numpyを有効に使って計算時間を短くしたかったのですが、なかなか難しいですね。 問題 atcoder.jp 公式解説でも解法が複数説明されていますが、どう解くとしても手法に工夫が必要でかなり難しいです。AtCoder ProblemsのDifficulty684しかない…

AtCoder AGC 034 B - ABC (Python)

irisruneです。当初Pythonで解けなくてGoで解いていたのですが、ミスに気付いたのでPythonで解き直しました。TLEしたときにすぐPythonのせいにするのはよくないですね。 atcoder.jp 600点としてはかなり簡単な方で、少なくとも土曜日の企業コン500点問題より…

AtCoder AGC 034 A - Kenken Race (Python)

irisruneです。Pythonを勉強し始めたので解ける問題はPythonで解くことが多くなると思います。 atcoder.jp 一見難しそうで思いつけば簡単…と思わせて引っ掛けポイントがある、そんな問題だと思います。 import sys n, a, b, c, d = [int(x) for x in input()…