SRM参加記録など雑記です。社会人になってから競技プログラミングを始めました。どこまで行けるか分かりませんが合間を見つけてアルゴリズムの勉強をしています。|コーディングフェーズ以下の2つの問題に分けて考えればいい与えられた情報から、スイッチとランプをこれ以上分割できないグループに分割する各グループを更にスイッチ・ランプ1個ずつのグループまで分割するための最小テスト数を求める時間をかけた挙句、1,2ともに間違った解答を出してしまいチャレンジされる後で1のほうは、実は縦に見て全く同じ結果のものを集めればいいだけだったりするつまり、1回目のテストがY、2回目がN、3回目がYのスイッチがあったとすると、それと同じグループに入れるスイッチは、やはり1回目のテストがY、2回目がN、3回目がYのスイッチである。同様に、ランプの全く同じパターンのものを集める。1つのグループ内で、スイッチとランプの数が違っていたら-1。2のほうは、とりあえず全てのグループに対し、並列で試験ができるので、一番スイッチ数の多いグループだけを考えればいい。i-1との距離をそれぞれ加算するしかし、このとき基本的に最寄りのテレポートを経由して行くことにする。i-1(またはi+1)がptel~ctelの間にあるときは、直接歩いたほうが早いかもしれない。その時は早いほうを採用する。i-1(またはi+1)がptel~ctelの間にないときは、必ずテレポートを経由して行っても直接歩くより時間がかかることはない。思ったら誰も出してなかったみんな同様に律儀にシミュレーション書いていたみたいチャレンジフェーズsortせずにnext_permutationしてる人を2人落とした実は最後の返り値をsortしてない人も2人いたらしい。後でシミュレーションしなくても、2回以上名前が出てくる人は必ず勝てるオレンジとリンゴを50%ずつ取れば必ず勝てるので。書いたうーん連結成分とか完全に無視して、前から1ビットずつ決める書き方にしちゃったけど大丈夫かなこれ・・とりあえずサンプルは一瞬で答え出るので提出ランダムな入力とか、全部のスイッチが連結している入力とか、色々試す特に問題ない。やばそうなのでも手元で100ms以下。チャレンジフェーズ赤い人2人から合計3回もチャレンジ受けるが生き残るハニーポット状態になってしまったシステムテスト通った。後でプラクティスで確認したらarenaでは最大で10msもかかっていない。むずいいやしかし落ち着け。Easyからそんなに難しい問題が出るはずがない。ん普通に上のセルと左のセルを1文字ずつ比較してみるかk文字目が最終的に(i,0)か(0,j)のどのセルに行き着くのかは、各セルの前半と後半が上からきたのか左から来たのか記憶しておけばすぐ求まるあとは、自明な枝刈りとして、k文字目が同じセルから由来しているのであれば、その文字数分飛ばす頑張って書いてみたおおー意外と一瞬で解答出た!!!枝刈りだけでいけるとは。OpenTipsDiv1SRM455SRM456SRM457SRM466SRM467SRM468SRM469SRM470SRM471SRM473SRM474SRM475SRM476SRM477SRM478SRM479SRM480SRM481SRM482SRM483SRM484SRM485SRM486SRM487SRM488SRM489SRM490SRM491SRM492SRM493SRM494SRM495SRM496SRM497SRM498SRM499SRM500SRM502SRM503SRM505SRM504.5SRM506SRM507SRM508SRM510SRM511SRM512SRM513SRM514SRM515SRM516SRM517SRM518SRM519SRM520SRM521SRM522SRM523SRM524SRM525SRM526SRM527SRM526.5SRM528SRM529SRM530SRM531SRM532SRM533SRM534SRM535SRM536SRM537SRM538SRM540SRM541SRM543カウンター357955リンク集SigmarのProfile。