タイトルリンク:https://cn.vjudge.net/contest/252252#problem/C
日语翻译:...
2つの解法を与えました.1 ms走ったのと15 ms走ったのとで、どちらもこの問題を乗り越えることができますが、なぜ速さと遅さの差がこんなに大きいのか、とても考える価値があります.
1つ目(dfsエッジ更新dp):
#include
#include
#include
#include
#include
#include
#include
#include
#include
2つ目は、(まずdfsがすべてのノードをプレイし、各ノードがルートであるサブツリーのサイズ(ルートを含む)を算出した後、dp更新する.これは、サブノードが親ノードを更新する際に、親ノードが表すサブツリーが非常に大きいため、更新の代価が非常に大きく、明らかに冗長である)
#include
#include
#include
#include
#include
#include
#include
#include
#include