# AHC015 2022/10/30 15:00~19:00 https://atcoder.jp/contests/ahc015/ ## 所感 ランダムにおかれるぷよぷよに対し、上下左右に傾けて落下させることでなるべく色を揃える問題。 色は3種類。何色かは以前にすべてわかる。場所だけ不明。 スコアはつながった数の2乗なので、できるだけでかいひとつを作るほうが良さそう。 かならず上下左右に傾けなければいけない。 まずはシミュレータ作らないと。 16:07 点数一致 16:14 上下左右への方向け再現(右下左上) ローカルのバルク実装をする。 16:47 した。 まずは貪欲に点数最大化を流す Ave = 343,914点 はじめからぷよの数の偏りはわかっているので、数の多いやつを伸ばすように偏らせるか。 やってみた。 Ave = 361,022点 ※だいぶブレが大きい。 その後、何ターンか実際にランダムにおいてみてシミュレートして平均点の高さで選ぶ? ランダムシミュレートの時、同じindで配置しないと不公平。 先にindのシミュをしてしまって、同じパターンで試す。 17:25 作った 1000shot、10ターン先読みで10ケース。 Ave = 621,747点 どうもブレが大きく、同じケースでも400K~700Kmでぶれる。 バグってないかcheck。 17:44 バグってた、1ターン分しか先読みしてなかった。 50shot、10ターン先読みで10ケース。 Ave = 632,784 素の評価でいいわけがない。 繋がってはいても、内部に余計なぷよが混ざるとあとで連結が切れる原因にもなる。 上下左右に余計なぷよがあったらペナルティをかけるなど。![](https://i.imgur.com/PmUzYnR.png) 入れた。 Ave=671,527 うーん、先読みを貪欲でしているのが良くないかも。 ビーム打つか。 18:30 打った Ave=710,301。 ただ本番だとこれほど回らない。 時間があればこれくらい出るらしい。 Ave=764,797 うーん、時間に対してパラメータをギリギリに絞るしかできん。 121位、130,979,794点。 seed=0、647,829点。 ![](https://i.imgur.com/qAK82Fy.gif) ## 反省会 なるほど、特定のcandyを一方向に集めるムーブが良いっぽい。 https://twitter.com/_phocom/status/1586661601700380673 出力が固定できるので、序盤の方をランダムシミュレートで一番良い寄せ方を決めて、 後半はちゃんとモンテカルロするのが良さそうだった? 序盤はあまり情報ない中で無理に先読みしたのが無駄だったかも。 序盤20分で順位表が130Mの塊が形成されていたらしい。 順位表checkも大事か。 正しいシミュレータを書くのはどの道必要だからやる。 そのあと貪欲をやったが評価関数に走ったのが良くなかった。 問題の本質を読んで評価以前に具体な手を考えるべき。 →うーん、本質を評価に落とせないのがダメかも。  空白マスcheckという簡単な事だけやって、集まり具合を評価に入れられなかった。 upsolve 3方向に寄せるやつをランダムシミュレートしてベストを決める。 Ave=739,776