---
# System prepended metadata

title: 'AHC015 2022/10/30　15:00～19:00'

---

# AHC015 2022/10/30　15:00～19:00

https://atcoder.jp/contests/ahc015/

## 所感
ランダムにおかれるぷよぷよに対し、上下左右に傾けて落下させることでなるべく色を揃える問題。
色は３種類。何色かは以前にすべてわかる。場所だけ不明。
スコアはつながった数の2乗なので、できるだけでかいひとつを作るほうが良さそう。

かならず上下左右に傾けなければいけない。
まずはシミュレータ作らないと。

16:07 点数一致
16:14 上下左右への方向け再現（右下左上）

ローカルのバルク実装をする。
16:47 した。

まずは貪欲に点数最大化を流す
Ave = 343,914点

はじめからぷよの数の偏りはわかっているので、数の多いやつを伸ばすように偏らせるか。
やってみた。
Ave = 361,022点
※だいぶブレが大きい。


その後、何ターンか実際にランダムにおいてみてシミュレートして平均点の高さで選ぶ？
ランダムシミュレートの時、同じindで配置しないと不公平。
先にindのシミュをしてしまって、同じパターンで試す。

17:25 作った
1000shot、10ターン先読みで10ケース。
Ave = 621,747点
どうもブレが大きく、同じケースでも400K～700Kｍでぶれる。
バグってないか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
