130 likes | 266 Views
Lucky Dip. 原案 : 津島 テスト : 伊藤,西出. 問題概要. W * H で壁と目的地が 与えられる (x, y) の壁が一つずつ除去される 何個取り除いたら (0, 0) から到達できるか. 解法. 塗りつぶし ただし,毎回 (0, 0) からでは間に 合わない 探索の状態を保存 して 開放 した 床 から 続ける O(W*H) Union Find Tree Y * W + X で番号付け 入力時に↑と←の床を unite 空いたら周りの床を unite O(α(W*H)). 塗りつぶし. .....#....
E N D
Lucky Dip 原案: 津島 テスト: 伊藤,西出
問題概要 • W * H で壁と目的地が与えられる • (x, y)の壁が一つずつ除去される • 何個取り除いたら(0, 0)から到達できるか
解法 • 塗りつぶし • ただし,毎回(0, 0)からでは間に合わない • 探索の状態を保存して開放した床から続ける • O(W*H) • Union Find Tree • Y * W + X で番号付け • 入力時に↑と←の床をunite • 空いたら周りの床をunite • O(α(W*H))
塗りつぶし .....#.... .....#.... .....#.... ######.... .......... ####...... ....###... t..#..#### ...##..... ....#...##
塗りつぶし vvvvv#.... vvvvv#.... vvvvv#.... ######.... .......... ####...... ....###... t..#..#### ...##..... ....#...##
塗りつぶし vvvvv#.... vvvvv#.... vvvvv#.... .#####.... .......... ####...... ....###... t..#..#### ...##..... ....#...##
塗りつぶし vvvvv#vvvv vvvvv#vvvv vvvvv#vvvv v#####vvvv vvvvvvvvvv ####vvvvvv ....###vvv t..#..#### ...##..... ....#...##
塗りつぶし vvvvv#vvvv vvvvv#vvvv vvvvv#vvvv v#####vvvv vvvvvvvvvv v###vvvvvv vvvv###vvv tvv#..#### vvv##..... vvvv#...##
Union Find Tree .....#.... .....#.... .....#.... ######.... .......... ####...... ....###... t..#..#### ...##..... ....#...##
Union Find Tree .....#.... .....#.... .....#.... .#####.... .......... ####...... ....###... t..#..#### ...##..... ....#...##
Union Find Tree .....#.... .....#.... .....#.... .#####.... .......... .###...... ....###... t..#..#### ...##..... ....#...##
想定解答 • 塗りつぶし, C++ • 72行, 1688[byte] • UnionFindTree, C++ • 86行, 1878[byte]
結果 • First Acceptance • オンサイト: • オンライン: • Accept/Submit