けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

最小全域木

diverta 2019 F - Edge Ordering (1200 点)

こういうの素早く解けるようになりたいね。 いわゆる「トポロジカルソート順の数え上げ」という高難易度でたまに見るパターンの問題。 問題へのリンク 問題概要 頂点 辺の無向グラフが与えられる。ここで、辺 が全域木を形成していることが保証されている。 …

AtCoder ARC 067 D - Built? (500 点)

ゆかたゆたんと一緒に解いたん。 今後まだ解いてない様々な 500 点問題について何がポイントになっているのかをブログ書きながら明らかにして行きたい。500 点問題の苦手意識を克服するぞい。 問題へのリンク 問題概要 二次元平面上に 個の点が与えられる。…

キーエンス プログラミング コンテスト 2019 E - Connecting Cities (600 点)

めちゃいっぱい解法あってすごい!!!!!!!MST への理解が問われる。 いずれ復習をやり切ってちゃんとしたいが取り急ぎ、分割統治法 Kruskal と、想定解法のみ。 問題へのリンク 問題概要 頂点からなるパスグラフと整数 が与えられる。各頂点には重み が…

AOJ 2224 Save your cat

これ面白いん!!!!!!!!好き!!!!!!! 問題へのリンク 問題概要 平面上に 個の点の座標 と、それらを結ぶ 本の線分がある。 線分のある部分は通過ができないので、線分に囲われた領域とその外側の領域とは行き来することができない。 そこでいく…

CS Academy 082 DIV1 E - Water Supply

ラグランジュ緩和か、、、なのん しかしこれ、ある特定の 1 頂点について次数が 以下であるような最小全域木を求める問題とみなせるわけだけど、こんなんが解けるのは面白いのんな。 全域最小木スライドにある通り、全頂点について次数が 以下となるような最…

CS Academy 081 DIV2 E - Fold Polygon

の Kruskal 法ではダメで、 な Prim 法なら OK という稀有なパターンの問題なん。Dijkstra 法でも priority_queue を使ったやつは 愚直なやつは と二種類の実装があって前者の方が速いと言及されるケースも多いけど、密グラフ ( なグラフ) では後者の方が速…

Kruskal法をココロから納得する

僕は、最小全域木を求めるKruskal法をココロから納得するのにとても長い時間が掛かってしまいました。本記事では、備忘録的な目的を兼ねて、少しKruskal法について書いてみたいと思います。 僕は、Kruskal法は今年5月頃初めて知ったのですが、そのときはどう…