kaage精進録

雑な解説とかライブラリとかおきもちの垂れ流しです。

2013JOI春合宿2-1 建設事業(Construction Project) 解説

問題リンク

典型寄せ集めみたいな問題

解説

まず、道の本数が高々 O(N) 本なので、作れる道を列挙できれば、クラスカル法で空港の数と道のコストの組を計算できる。

空港の建設コストは会社ごとに異なるので、これを変数だと考えると、上に挙げた組は一次関数になり、最小値は Li Chao Tree や Convex Hull Trick で求められる。

あとは道の列挙方法だが、道が x 軸か y 軸に平行であることを考えれば、Segment Tree で平面走査してやればよい。

実装は重めだが、ad-hoc な実装がなくてパートごとに分けやすいので、そこまでバグは埋めにくいかと思う。

時間計算量は O( (N+M)(\log(N+M))+C\log C) になる(たぶん)。

提出リンク