当たって砕けた。
A,Bは普通に解けた。 Cは1回TLEを出してしまった(だいたいどれくらいの計算量でTLEになるのかわかってきた気がする)。
Dはパット見行けるか!?の精神で挑み,無事WA。
公式解説を読んでみたが,なにやら聞いたことのない単語ばかりで完全に理解するに至らなかった。
曰く,問題を無向グラフの頂点を結ぶ辺として表現して,各連結成分ごとにDFSやBFSを使うか,もしくはunion-find木を使ってやると解けるらしい。
それぞれの単語の意味はわからないではないが,恐らくこの文章を通して理解すべきものを理解できていない。
こういう用語とかの基礎知識もそうだけど,まだまだ実力が足りていない。
とりあえず探索アルゴリズムの勉強をする必要がある。