ymduu+2

初心を忘れないのでツンデレとPSPが今でも好き、技術メモとか制作物とかそういうの

ABC133 E Virus Tree 2

所感

Cはカス

問題概要

木と数Kが与えられる。イカの条件で色を塗り分けるとき、塗り分け方の個数を求めよ。

二つの異なる頂点 x,y 間の距離が2以下ならば、頂点xの色と頂点yの色は異なる。

取った方針

あるノードに注目した時、距離が2以下である、とは、以下のノードの色が違えばよい。
- 親
- 親の親
- 兄弟(同じ親の子)
深さが2以下のノードにおいて、親と親の親はそれぞれ1つずつ存在するので(理由: 木なので)、親が同じノードにK-2, K-3...と順番に数を振っていくとそれはそのノードに塗れる色の個数になる。深さが1の時はK-1, K-2...と振ることに注意する。(親の親がいないので)
最後にそれらをすべて掛ければOK

正しい方針(解説の方針)

私はBFS で解説はDFS だけど使っている事実は同じ

得られた知見

・木において距離が2 -> 親の親 or 同じ親の子
・Cはカス

解くのに必要な要素

・BFS/DFS
・Cをバグらせないこと

周辺調査によって得られた知見

特になし