Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2014 TCO Marathon Round 1 (yowa)

1,723 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

2014 TCO Marathon Round 1 (yowa)

  1. 1. 2014 TCO Marathon Round 12014 TCO Marathon Round 1 SquareRemoverSquareRemover - 2x2- 2x2の四角を作って消そうの四角を作って消そう -- 参加メモ参加メモ @yowa
  2. 2. どんな問題? ● 隣接するマスを入れ替えることができる
  3. 3. どんな問題? ● 隣接するマスを入れ替えることができる ● 2x2の四角を作ると消える (スコア+1)
  4. 4. どんな問題? ● 隣接するマスを入れ替えることができる ● 2x2の四角を作ると消える (スコア+1) ● 消えた場所は Next(既知)で置き換えられる
  5. 5. どんな問題? ● 隣接するマスを入れ替えることができる ● 2x2の四角を作ると消える (スコア+1) ● 消えた場所は Next(既知)で置き換えられる ● 1万ターンで多くスコアを稼ごう! – 消した数=スコア – 連鎖や同時消ししてもボーナスは無い
  6. 6. やったこと ● ビームサーチ – 少ない手数(1手~)で消せるとこを探す – 消 してみて高得点だったものを残す
  7. 7. 少手数で消せるとこ探す? 例) ● この盤面で、4手以内で 消せるパターンを 探してみよう (例)盤面サイズ N = 6,      色の数 C = 4 (実際は 8 N 16, 4 C 6≦ ≦ ≦ ≦ )
  8. 8. 少手数で消せるとこ探す? 例) ● この盤面で、4手以内で 消せるパターンを 探してみよう (例)盤面サイズ N = 6,      色の数 C = 4 (実際は 8 N 16, 4 C 6≦ ≦ ≦ ≦ ) どうやればいいか  わかんない!
  9. 9. 少手数で消せるとこ探す? ● 可能な手を全列挙して、消えるか確かめる? – 1手 → O(N^2) – 2手 → O(N^4) – 3手 → O(N^6) ... キリがない! ● (見落としがあってもいいので)決まった時間で 探せるとありがたい
  10. 10. こうやった ● 目標の場所と色を決める(図では、中央に青)
  11. 11. こうやった ● 目標の場所と色を決める(図では、中央に青) ● 目標を中心に盤を四分割して 領域内での移動だけ考える – 各領域内の最短距離は O(N^2)の前処理DPで 求めておける
  12. 12. こうやった ● 目標の場所と色を決める(図では、中央に青) ● 目標を中心に盤を四分割して 領域内での移動だけ考える – 各領域内の最短距離は O(N^2)の前処理DPで 求めておける ● O(N^2 C) の処理で (N-1)^2 C 個の消せるパターンを列挙できた!
  13. 13. ● 別領域から動かしたほうが近いケースを 見落とすけどね……。
  14. 14. 評価関数 ● 単純に 「(現在のスコア)÷(現在の手数) が大きい 盤面ほど良い」で、それなりに動く ● もう一声!
  15. 15. L字型はエラい
  16. 16. L字型はエラい ● ヘコみの隣接マスに同色があれば 1手で消せる形!
  17. 17. L字型はエラい ● ヘコみの隣接マスに同色があれば 1手で消せる形! ● ヘコみに合わせて他の色を 消すと、Next 次第で 連鎖が起きる!
  18. 18. L字型はエラい ● ヘコみの隣接マスに同色があれば 1手で消せる形! ● ヘコみに合わせて他の色を 消すと、Next 次第で 連鎖が起きる! ⇒ L字型1個につき、評価値を +1/C した
  19. 19. やらなかったこと ● Next を先読みして、それに合わせた盤面操作 ● 兄弟ノードでの情報共有 – 1回の消去では局所的にしか変化しない – 兄弟ノードは盤面の大部分が共通 – ある盤面で大連鎖できたら、その兄弟ノードでも同じ 場所で大連鎖できるかも! – ……みたいなこと
  20. 20. おしまい       ――――――――――   製作・著作 @yowa   

×