/ 最近 .rdf 追記 編集 設定 本棚

脳log[20191017]



2019年10月17日 (木) 提出 #8002336 - AtCoder Beginner Contest 088」に対して1バイト縮めた「提出 #8002578 - AtCoder Beginner Contest 088」。でも Ruby で *最速* である hanada3355 という人の「提出 #5777010 - AtCoder Beginner Contest 088」を手直しするだけで 151 バイトのスクリプトになるんだよなあ(※p の引数解釈とか条件演算子と文字リテラルの解釈揺れをバージョン2.3.3に最適化すると多少縮むかも)。196 バイト、195 バイトのレベルではない。手法としては「ちょっとだけGOLFに走った」と同じなんだけど、見てしまってから真似はできない。発想の転換が欲しい。■とか書いている間に 187 バイトの「提出 #8002816 - AtCoder Beginner Contest 088」と 186 バイトの「提出 #8002824 - AtCoder Beginner Contest 088」。目の付け所がずれている。でも自分としては添削を受けているようでテクニックの引き出しが増えて良い。■■■矢継ぎ早にくり出される新アイディアが楽しい。特に出力変数 c に例外値 -1 の役割まで持たせてループのストッパーにするこれが白眉。「提出 #8007594 - AtCoder Beginner Contest 088」。■これもえげつない。「提出 #8007675 - AtCoder Beginner Contest 088」 Integer#to_i(2) のリテラル2を再利用するために t の初期値を1から2にしてしまう。つじつまを合わせるために問題由来のビット列 s の方を2倍してしまう。それでは釣り合わないんだけど W の代入文が省けるのと、2倍した s がループの停止条件としてそのまま使えるので総合して得する。■短いソースに何重にも意味を重ねてすべてがすべてと必然的に絡み合う感じ。最適化の極みよな。アルゴリズムと言語と個々の問題に対する深い理解がないとここまで自由にいじくれませんよ。