アジア地区予選の復習
一度解法聞いてるのに,まだ解けてない問題がある….
問題とサンプル入出力は公式サイトで公開されてます.
以下ネタバレのため省略されました.続きを読むには(ry
おおよそ復習に手を付けた順に.
slimな全域木は,解説の通り.全域木を構成する辺のうち最軽辺をループ毎に重くして,全域木を作れなくなるまで繰り返す.
バックギャモンの問題は,メモ探のテーブルをゼロ初期化してたために確率ゼロと見分けがつかずTLE状態だった.安易にmemsetしたのが間違いのもと….なんで気付かないかなー. -1で初期化して普通の速さに.
構文解析してバグを見つけるという問題は,10分パーザのおかげで書けた.Syntax errorは無いということで気が楽.配列名→サイズのmap,(配列名とインデックス)→値のmapが大域にあれば良い.
海から最も遠い点の問題は,ライブラリの重要さが身にしみた.人のライブラリを使うなら,最低でも使い方を把握しろ>自分. 使った解法は,凸多角形を縮小する(クリッピングというのか)長さについて二分探索.
幽霊の問題.両側探索するのにpriority_queueを使っていたせいで無駄に悩んだ.queueに直してあっさり終了.問題文のサンプルで3秒弱,公開されたサンプル入出力で23秒程度だった.さすが両側探索.
折り紙の体積(違)を求める問題は,とりあえず展開図の頂点を列挙するとこまで書いた(ここまで書いて思い出したけど,頂点を一つ決めた後,残りの頂点が格子上に乗ってるかチェックしていない気がする).これで展開図がかけるので,あとは展開図から高さを求めれば良いんだけど….
最短路の問題と最後の問題はまだ手付かず.最短路のは,グラフに落とすのが面倒そう.
About this entry
You’re currently reading “アジア地区予選の復習,” an entry on 数奇な因子
- Published:
- 月曜日, 11月 19th, 2007 at 20:19:16
- Author:
- line
- Category:
- algorithm, icpc, programming
Comments are closed
Comments are currently closed on this entry.