treedp专题

[BZOJ 3302][Shoi2005]树的双中心:TreeDP

点击这里查看原题 首先可以想到n^2做法,枚举每一条边,切断这条边变成两棵树,对两棵树各O(n)求一遍重心,加和即为答案 但是题目中有一个重要条件,高度h不超过100,因此可以O(h)求重心,即每次向权值和最大的儿子转移(维护时需要维护最大和次大)。 总复杂度O(nh) /*User:SmallLanguage:C++Problem No.:3302*/#include<bits