今日の分
これは嘘で実際は解いていません、みたいなことはないので安心してね!
- PKU 2470 Ambiguous permutations
- PKU 2031 Building a Space Station
- PKU 2524 Ubiquitous Religions
- PKU 2251 Dungeon Master
累計26問。
PKU 2470 Ambiguous permutations
やるだけ。アホなやり方でO(N2)とか書くと死ぬ。
PKU 2031 Building a Space Station
セルを頂点とし、セルの各組の距離を重みにもつ辺を持たせたグラフを考える。2セル (x0,y0,z0),(x1,y1,z1) 半径それぞれ r0, r1 間の距離は max(sqrt( (x0-x1)2+(y0-y1)2+(z0-z1)2)) - (r0+r1), 0.0) で計算する。
後は頂点がすべて連結になり、かつ重みの和が最小になるような辺の残し方を求める。これは最小全域木を求める問題であり、クラスカル法を用いればグラフ G=(V,E) に対して O(|E|log|E|) で答えがでる。|V| = Nであり、|E| = |V|2 = N2になるので計算量をNで表せば O(N2logN) である。
PKU 2524 Ubiquitous Religions
Union Findで集合が何個あるか数える。M回のUnionを必要とするので時間はO(NM) = O(N^3)で間に合わないように見えるが、経路圧縮したUnion Findのならし解析による時間で考えると5000MSの時間制限には余裕で間に合う。
PKU 2251 Dungeon Master
よくある迷路の経路探索問題が3次元化しただけ。BFSでおk。