一次元で考えると, の町があれば, と , と をつなげればいいので, と はつなげる必要がない. よって, ソートして隣同士をつなげていくのが最も効率的である.
これを二次元に拡張して, 町を 座標でソートし, 隣り合う町同士の距離を求める. 座標でも同様にソートして隣り合う町同士の距離を求める.
この隣り合う町同士の距離をソートして短い順に Union-Find でつなげていく. ただし, すでに同じ森に所属しているならつなげない.
すべての町がつながった (森がひとつになった) ときのつなげたコストの和が答えである.