いむらや競プロ雑記

キーワード:競プロ、育児、石川県

ARC143 A - Three Integers

atcoder.jp 解説にあるような「どれか1つに1を加算する」(その後全部を1引く)操作を読み替えられた場合、上のコードのような感じで解ける。 なお、ABCの値はA[0]A[1]A[2]のリストとし、ソートしてA[0]が大きい前提としている。 A[1]とA[2]にA[0]を合わせる…

ABC257 E - Addition and Multiplication 2

atcoder.jp def resolve(): N = int(input()) C = list(map(int, input().split())) Min = min(C) diff = [ [1, C[0]], [2, C[1]], [3, C[2]], [4, C[3]], [5, C[4]], [6, C[5]], [7, C[6]], [8, C[7]], [9, C[8]], ] for i in range(9): diff[i][1] -= Min …

ABC251 D - At Most 3 (Contestant ver.)

atcoder.jp 解法は解説を見れば明らかなので略。 色々実験したけど、優位に速度が変わらないような気がした...(誤差の範囲?) 他のpython勢の提出も、17~19msあたりが最速に見えるので、これ以上は言語の限界だろうか 入力は受ける、答えとなるリストをra…

ABC251 E - Tahakashi and Animals

atcoder.jp iを1~Nとして、動物iを押さえたときに、用いた行動が、0:iなのか、1:i-1なのか、の2状態を持ち、それぞれの最小コストを更新するようなDPを持つ(苦手なので日本語が微妙…) ここで、動物2に対して行動2(i)、動物3に対して行動2(i-1)のような…

ABC250 E - Prefix Equality

atcoder.jp 先頭xおよびy要素のそれぞれの集合を事前に作っておいて、一致確認できれば簡単だけど、それをやるとTLEする。ある集合の状態をもっと軽量な値として管理したらよさそうで、それをハッシュ的にやる。 初登場の要素が来たら、乱数を生成して、ある…

ABC249 D - Index Trio

atcoder.jp カウント対象が成立するためには、左辺が割り切れる必要がある(Aのそれぞれが整数のため)ことから、iについて全探索するとした場合に、Aiの約数を列挙しておくとよさそう。さらに、AjとAk相当は、まじめに探索しなくても、個数から引いてこれそ…

ABC246 E - Bishop 2

atcoder.jp 基本的にはゴリゴリ探索し、枝狩り(というのか?)する。何法っていうのかよくわからない。 ただし、本番中には枝狩り不足で通せず。ソース整理してコメントも残したので、置いておきます。 def resolve(): N = int(input()) Ax, Ay = map(int, …

ABC232(M-SOLUTIONS) D - Weak Takahashi

atcoder.jp 大事故でした。。。 貰うDPと配るDP、久々に書いたので、両方混ざって、間に合わないという大失態。 今だとアルゴ式(貰う DP と配る DP | アルゴ式)を参照した方がいい気もするが、 新鮮なうちに両方のPython解を書いて載せておきます。 ※問題…

競プロでの自己肯定感の保ち方

この記事は はじめに なぜ凹むのか なぜ成長速度の差が生まれるのか 見方を変えてみる 肯定的にとらえてみる 結論 おまけ:音ゲーと絡めた方が分かり易かったかも この記事は 競技プログラミングを始めたばかりの人に伝えたいこと 17日目の記事です。 qiita.…

VSCode+pythonで配列デバッグ上限300を超える

Too large to show contents. Max items to show: 300 を言われるけど、環境構築もろもろあんまり頑張りたくない人向け(わたしです) 日本語記事が全然引っかからなかったのでメモ。 C:\Users\<ユーザー名>.vscode\extensions\ms-python.python-<バージョン…

ABC131 D - Megalomania / インデントに注意

atcoder.jp まだ埋めてない茶diffを埋めようとしてて(AGCと古すぎるものは除外している…)、サクっと解いたつもりが、なぜかTLEが出てハマる。 以下なんだけど、パッと見て分かるだろうか?? def resolve(): N=int(input()) L=[] for i in range(N): a,b=m…

AHC003でPythonでビジュアライザ動かせなかった人へ

atcoder.jp AHC003に参加し、272...点で、上1/3ちょいでした。 AHC001もAHC002も一応参加したけど、下1/4にも及ばなかったので、自分としては健闘したかなと思います。 さて、その結果とはあまり関係ないのですが。 公式で提供されているRustのビジュアライ…

ABC197 C - ORXOR

atcoder.jp 誤読抜きにしても、BIT全探索の理解が甘く、まるで解けなかった・・・ だいぶ時間かかって、やっと分かり易いコードに落ちた気がするので、メモ。 なお、PyPyじゃないと通らない(500msくらい) def resolve(): N=int(input()) A=list(map(int,in…

ARC115 C - ℕ Coloring

atcoder.jp 解説に反して、愚直みある実装でも解けた。 以下では1-indexedの方が理解しやすいと思ったので、あやしい+1と、出力時に0番目の無視をしている。 また、値はA1は必ず1、A2以降は必ず2以上、が明らかなので、答えの配列の初期値を1,2,2,...とする…

ABC064 D - Insertion

atcoder.jp サクっと解けたものの、自分の読解力がなすぎるのか、 解説の言ってることが全く分からず・・・まさか嘘回答? 方針としてはこう まず正しい括弧列は消えるイメージとする(ぷよぷよ的な) 与えられたSで消えるものは全部消しきるまで、走査を繰…

ABC085 D - Katana Thrower

atcoder.jp 最近は緑Diffを解いてみてる。 この問題、サクっと考察・実装できたものの、1WAが全然取れず苦戦した。 どこかというと if(H>0):がなかったわけだけど、 こうするとb(投げつける)で削りきったのに、 a(切り付ける)を処理してしまうので、NG。…

ABC054 B - Template Matching

atcoder.jp 緑Diffひたすら解いて精進中。。。 この問題自体はあまりハマるところはなかったけど、Yes/Noの出力が何とかならんかなあと思い、今更、三項演算子の使い方を知る。毎回書いてもいいレベルかもしれない。 関数内にいろいろ隠ぺいしようと思ったけ…

ARC080 D - Grid Coloring

atcoder.jp 解説(右左に1段ずつ下がりながら塗っていく)を見た今となっては何故・・・という解法だけど、「外周を(まだ塗ってないマスを探し)ぐるぐる回りながら塗っていく」という、最初に閃いたネタに固執してしまい、やたら苦労した。 ちょっと面白い…

ABC129 C - Typical Stairs

atcoder.jp 地味にまともなDP解いたのは初かもしれない。 DP典型を逃しまくってるので、まだまだ強化必要だなあ。 dpの状態数は開始位置を含むN+1とした(遷移先がN段目まである) 壊れてる階段の数はMだけど、最大でたかだかN-1なので、-1(存在しない段)…

ABC076 C - Dubious Document 2

atcoder.jp そもそも全パターン試さないといけないことに気づかず、WA連発していたが、 気づいたところで、なかなか実装し切れなかった。 意外とPythonでの文字列の置換や結合でハマったのでメモ。 文字列に対して、部分の置き換えはできない replaceを使え…

ABC167 D - Teleporter

atcoder.jp Pythonです。精進しててえらいハマったので、なるべく分かりやすいソースにしてみたつもり。 ループしてなければ何事もなく終わるし、ループを検知したら、ループに戻る前にループサイクルを加味して、あと何移動すべきか決めたうえでループに飛…

ABC167 D -

ABC136 D - Gathering Children(要追記)

atcoder.jp pythonです。 試行回数が十分大きな偶数なので、収束したときの状態・振動を探せばいいと思ったが、、、 以下で通ったが、いまいち理解しきれていない。 Rが続く限り、Rの続きの次の位置に吸い寄せられる。Lも同様。 これをやっただけで、RLで振…

ABC188 C - ABC Tournament

https://atcoder.jp/contests/abc188/tasks/abc188_catcoder.jp pythonです。 ゴリゴリとトーナメントをシミュレーションしたうえに、バグらせまくって30分以上溶かしたが、、、 解説を見て、「全体を二分したそれぞれのブロックにて、トップ同士を対決させ…

ダイソーの布団圧縮袋でニトリの布団一式を圧縮する

育児ハック系というか、ただの百均グッズ紹介レベル。 ダイソーの布団圧縮袋(300円)やってみた。 約3〜4倍の圧縮効率か。 この布団は、ニトリのポリの安い布団セットで、購入時そもそも圧縮カチカチだった気がする(たぶん)ので、問題ないとは思うが… 解…

クッションの保管には布団圧縮袋が良い

育児ハック(常識?)系メモ。 転落防止や赤ちゃんのちょい置き(※寝返り打つようになったら、ふかふかは危険なので厳禁だ)に便利な、ニトリのロングクッション。 しかしやがて使わなくなるが、全然へたらないため、捨てるのももったいなく、しかし嵩張るの…

可処分時間

連休2日を終えて、毎度同じような、時間ねえな感に苛まれているが、ちょっとメモ。 平日は、仕事の時間が多少前後するにせよ、夜8時頃に(担当である下の)子を寝かすまでは、基本的に自由時間ではないため、そこから寝るまでが可処分時間である。 仕事の前…

寝かしつけ精進

寝かしつけは育児の最大の時間食い、かつミスって一緒に寝ると目も当てられない。かと言って、不可避でもある。夫婦と二人の子なら、一人ずつ担当するのが無難であろう。 自分は何故か、下の子が良く寝てくれるので、下の子担当になっている… 最近分かってき…

競プロ歴1年でやっとやっと緑になったけど、最初の関門は競技育児だった話

この記事は Competitive Programming (1) Advent Calendar 2020 10日目の記事です。 adventar.org この記事について 緑になった 自分について 時期とやってたことを振り返る 競技育児 背景 課題 問題と対処 リスクヘッジ 効果 まとめ? この記事について 技…

PythonとC++の速度差を痛感した話 ARC109 B - log

先日のAtCoder Regular Contest 109にて。 atcoder.jp 背景 この問題は、N+1の丸太をどう分割するかの走査(i=1,2,3...)がキモなわけですが、制約も大きいし、ハナから愚直にやってもダメだ、二分探索が必須だと思っていました。しかし、それすら必要ないと…