3日目

  • 朝起きたとき、データ構造はTrieで持つよりもvector<int> table[n][n文字がchのストリングの番号]で管理してintersectionとか使った方がいい気がしてきた。
  • 文字列に出現率の高い文字の重み付き平均でスコアリングして置くと役に立つかな?
    • eが多い文字は高スコアで、zとかqが入っているのは低スコア。
    • スコアリングした所で、高いものから使うか低いものから使うかはよく考えなきゃならん。
  • それにしても重なり率は他の評価関数に対して排他的過ぎる。
  • 今現在トップが62点位。普通のクロスワード解きが未実装で自分と同様の戦略だと仮定すると、充填率は48%。とりあえずこれを目標に改良しよう。
  • 詰める量を増やしたり詰める順番を変えたりするようにして提出。60.9点。
    • 充填率は推定43.6%。とはいえ、辞書の文字が足りない場合もあるので割と頭打ちに近づいているのかもしれ無い。
    • トップが63.8位まで上がっていた。
  • 文字を埋めた後に、文字をはさんだ方がいいなら挟むことにする。
    • 一応多少の効果はあったあったような。
    • この実装に時間がかかってこれだけで終わってしまった。
  • コンテストの終了日を1日勘違いしていたことに気づいた。
    • もうスケジューリングとかしても今更感があるし、このまま突っ走ろう…。