Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a,b 的最短路径。 现在国家有很多个计划,每个计划都是这样,我们选中了 k 个点, ...
分类:
其他好文 时间:
2019-01-04 12:25:45
阅读次数:
191
题面 "传送门" 虚树 把跟询问有关的点拿出来建树,为了方便树$DP$ 在$LCA$处要合并答案,那么把这些点的$LCA$也拿出来 做法:把点按$dfs$序排列,然后求出相邻两个点的$LCA$,把这些点建一个虚树,维护一个栈就好了 Sol 虚树+树$DP$ cpp include define IL ...
分类:
其他好文 时间:
2018-05-31 00:31:06
阅读次数:
179
【BZOJ3611】大工程(虚树,动态规划) 题面 "BZOJ" Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a,b 的最短路径 ...
分类:
其他好文 时间:
2018-05-21 16:22:38
阅读次数:
135
Description "题目链接" Solution 在虚树上跑DP即可 关于虚树的建立,是维护一个最右链的过程 关键代码如下: c++ sort(A+1,A+k+1,cmp);//按dfs序排序 s[top=1]=1;//栈维护最右链 for(int i=1;i1&&dep[f] include ...
分类:
其他好文 时间:
2018-03-30 21:36:32
阅读次数:
162
题目 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a,b 的最短路径。 现在国家有很多个计划,每个计划都是这样,我们选中了 k 个点,然后在它们两两之间 ...
分类:
其他好文 时间:
2018-03-28 23:56:19
阅读次数:
156
3611: [Heoi2014]大工程 Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a,b 的最短路径。 现在国家有很多个计划, ...
分类:
其他好文 时间:
2018-03-24 16:27:44
阅读次数:
170
$虚树+树形dp$ $虚树复习$ $虚树是用来解决每次从树中选出一些点进行统计一类问题的方法,每次把这些点建出虚树,最多不超过2*k个点$ $建虚树的过程挺简单的,就是用一个栈记录当前dfs的过程,如果出现分叉就回溯。重点在于虚点的加入,就是两个点的lca,这个判一下就行了$ $树形dp的过程比较简 ...
分类:
其他好文 时间:
2018-01-29 21:32:53
阅读次数:
217
题目: Description 国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。 我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。 在 2 个国家 a,b 之间建一条新通道需要的代价为树上 a,b 的最短路径。 现在国家有很多个计划,每个计划都是这样,我们选中了 k ...
分类:
其他好文 时间:
2017-09-24 21:27:02
阅读次数:
149
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3611 【题解】 和bzoj2286一样,建虚树出来,在虚数上dp。 第一问分别考虑每条边的贡献即可。 第二问和第三问dp。 f[x][0/1],g[x][0/1]表示x子树,两个端点都在子树内 ...
分类:
其他好文 时间:
2017-05-29 12:06:15
阅读次数:
222
http://www.lydsy.com/JudgeOnline/problem.php?id=3611 (题目链接) 搞了1天= =,感觉人都变蠢了。。。 题意:给出一个n个节点的树,每条边边权为1,给出q个询问,每次询问K个关键点,求出这k个点之间的两两距离和、最小距离和最大距离。 soluti ...
分类:
其他好文 时间:
2016-09-28 01:40:45
阅读次数:
173