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

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

【問題集】木の探索

AtCoder ABC 274 C - Ameba (灰色, 300 点)

木を探索する練習問題。頭を柔らかくするのが肝心。 問題へのリンク 問題概要 あなたはアメーバの観察記録をつけました。最初 匹のアメーバがおり、番号は です。 観察記録は時系列順に 個あり、 番目の観察記録は 番号 のアメーバが分裂して消滅し、 新たに…

AtCoder ABC 303 E - A Gift From the Stars (緑色, 475 点)

DFS などの探索をしても解けるし、単に次数を見るだけでも解ける。 問題へのリンク 問題概要 個の葉をもつスターグラフを、レベル のスターと呼ぶことにする。 高橋君は、はじめ何個かのスターからなるグラフを持っている。これらのスターの頂点数の総和は …

AtCoder ABC 213 D - Takahashi Tour (茶色, 400 点)

DFS (深さ優先探索) の動きをシミュレーションする問題。 問題へのリンク 問題概要 頂点番号が であるような木が与えられます。 今このグラフにおいて、頂点 1 から出発して、次の動きを繰り返します。 いまいる頂点に隣接する頂点のうち、まだ訪れたことが…

AtCoder ABC 187 E - Through Path (水色, 500 点)

これの応用問題って感じだった!! drken1215.hatenablog.com 問題へのリンク 問題概要 頂点数 の木が与えられる。 番目の辺は頂点 と頂点 とを結んでいる。はじめ、各頂点には、値 0 が書き込まれている。以下の 個のクエリを処理したあとの、各頂点に書き…

AtCoder ABC 138 D - Ki (緑色, 400 点)

まさに「the 緑 diff」な問題だと思う。 「木を上手く扱えるか」を問いかける問題。 問題へのリンク 問題概要 頂点の木が与えられる。この木の頂点 1 を根とした根付き木を考える。各頂点には初期状態では 0 という数値が書かれている。以下の 回の操作を行…

AtCoder ABC 146 D - Coloring Edges on Tree (緑色, 400 点)

軽めの構築問題!! 今回は「最大次数」というのが割と明らかだけど、しっかり構築法踏まえて証明する練習をすると、高難易度問題にも繋がりそう! 問題へのリンク 問題概要 頂点の木が与えられる。 本の辺に対して、なるべく少ない種類の色を用いて色を塗っ…

木の直径 (AOJ Course GRL_5_A)

めちゃめちゃ簡単な実装で良いことがわかったので。 なんか、DFS 2 回か、全方位やるかなのかと思ってたけど、とても簡単な木DPで直径が求められることを知った。 問題へのリンク 問題概要 頂点の重み付き木が与えられるので、その直径の長さを求めよ。 制約…

AtCoder ABC 133 E - Virus Tree 2 (水色, 500 点)

木の走査って 根の方から情報を配っていく 子ノードたちの情報を引っ張ってくる (いわゆる木 DP) という二つの方向性があって、状況に応じてうまいこと使い分けるとよいイメージがある。 問題へのリンク 問題概要 頂点の木があたえられる。木の各頂点を 色に…

AtCoder ABC 126 D - Even Relation (水色, 400 点)

とても教育的なツリーの探索問題。 問題へのリンク 問題概要 頂点の重み付き無向グラフが与えられる。このグラフの各頂点を白黒に塗る方法であって 同色に塗られた 2 頂点はどれを選んでも、その間のパスの長さは偶数である という条件を満たすものを求めよ…

AtCoder ABC 070 D - Transit Tree Path (緑色, 400 点)

一見、ツリー上のパスクエリ (オイラーツアーとかするやつ) な問題に見えるけど、そんなことはなかった 問題へのリンク 問題概要 頂点のツリー (辺に重み付き) が与えられる。ツリー上の 1 点 が与えられて、以下のクエリに 個答えよ: クエリ (): から を経…

競プロ典型 90 問 003 - Longest Circular Road(★4)

木の直径を求めよ、という問題。直径を考えると解ける問題は高難易度でもお馴染みですね。 問題へのリンク editorial 類題とか drken1215.hatenablog.com 問題概要 頂点数 の木が与えられます。 この木に新たに辺を 1 本追加すると、閉路が 1 つできます。 …