摘要: 思路:将关键点按dfs序排序,然后显然就是dfs序中相邻的两个点的距离之和加上最后一个点到第一点的距离(YY一下很显然),动态维护就用splay就好了(我是一个不会用set的蒟蒻。。。。。) 阅读全文
posted @ 2016-10-24 17:16 DUXT 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 思路:建出虚树然后treedp即可,f[i]表示将以i为根的子树与根隔绝的最小代价,f[i]=min(val[i],Σf[son[i]])(val[i]表示将点i与根隔绝的代价),需要注意的是如果i就是关键点那么f[i]=val[i]。 阅读全文
posted @ 2016-10-24 11:51 DUXT 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 思路:首先因为n的范围很大,考虑建立虚树,就是把大部分的冗余的点去掉然后建立一颗新的树然后再树形dp,具体实现可以考虑用一个栈维护,首先求出每个点的dfn然后按照dfn排序,然后用一个栈维护(栈里存的关键点或关键点之间的lca或关键点lca的lca等等。。。),然后枚举关键点,求出关键点与当前栈顶元 阅读全文
posted @ 2016-10-24 10:55 DUXT 阅读(143) 评论(0) 推荐(0) 编辑