日立製作所 社会システム事業部 プログラミングコンテスト2020 C - ThREE
問題
与えられた頂点の木の頂点1から頂点に、次の条件を満たすように1からの順列の番号をつける。
任意の頂点の組で、頂点と頂点の距離が3なら、かが3の倍数になる。
考察
を表す。 なら、積が3の倍数になる。なら、和が3の倍数になる。それ以外のペアで和や積が3の倍数になるペアは作れない。
与えられた木を二部グラフと捉えると、距離が3の2つの頂点はそれぞれ異なる頂点集合に属する。この異なる頂点集合から任意の頂点のペアを取り出したときに、とならないようにすればよい。具体的には、なる点はすべて同じ集合に、なる点もすべて同じ集合に、入れれば良い。