No.333〜335yukicoderRMQのセグメントツリー実装でバグが合ったらしく、かなりの時間悩んだ。336解いてませんが、取り敢えずここでコード載せておきます。ん中の門松の長さが与えられるので、右の門松で門松列を満たす長さの数を答えよ。門松列は「真ん中が最大、もしくは最小」であればよい。右端>真ん中の時、真ん中<左端より「20億-真ん中-1(右端にダブる)」とすればよい。数列から門松列を満たす数字3つを2人交互に取り除いていき、門松列が作れなくなったら負け。yukicoder解法DFS。ゲームで「最善策を取る」とあった場合、考えられるパターンとしてDFSNim、Grundy数その他特殊な性質があったと思います(AtCoderで有ったんだけどうろ覚え)。気になったら調べてください。今回はN≦12ということで最大4手、よって最大ケースでも通り数は12C3×9C3×6C3×3C3≒40万通りとなり、全部試しても余裕で間に合います。今回は答えが複数ある場合辞書順最小のものを答えることになっているので、DFSが最適でしょう。0;}普通に実装が面倒...自分が出来たのはここまででした。宝くじの券には1〜Nの数字が1つずつ書いてあり、2つの数字が発表されるので、その2つの数字+1つの数字が門松列になっていれば当選。当選する期待値の最も高いものを答えよ。yukicoder解法まず、期待値と言っているが、分母は常にNC2であるから無視。何通り宝くじが当たるか数えればよい。自分は「O(N^3)でも通りそうだな...」とやって失敗しました。細かい解法はhttp://yukicoder.me/problems/936/editorialに載っていますが、要は最大値と最小値をそれぞれ求めるRMQです。いうことでセグメントツリーを取り敢えず実装しました。0;}RMQは色々あるので、一段落着いたら取り敢えず平方分割からこの問題で解いてみたい。いえばSRMは1完ですが1085->1149。1完なので解説はまだ出来ません(問題が貯まる一方)。あと1回で青に上げておきたいです。日)ネットの海に生息するらしいバーチャルグソクムシ。競プロとCTFをメインに、たまにEsolangを混ぜます。(7)月別アーカイブリンクGitHubはてなブログをはじめよう!Hyogaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。