![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
生成树
文章平均质量分 86
Colin_27
这个作者很懒,什么都没留下…
展开
-
hdu4756 Install Air Conditioning
次小生成树的变形dfs得到最佳替代边假设两个各自连通的部分分别为树A,树B用dp[i][j]表示树A(i点所在的树) 到 树B(j点所在的树)的最近距离(此然就是最佳替代边)注意0号节点相连的边不会出错原创 2013-10-24 18:14:35 · 768 阅读 · 0 评论 -
hdu3681 PrisonBreak
一来想用普通BFS实现,无奈超时,怒换思路遍历所有的点且仅一次,可转化为TSP问题变形求满足的最小值,显然二分之推荐一个TSP好的博客,一看就懂 点击打开链接原创 2013-10-22 11:25:10 · 787 阅读 · 0 评论 -
hdu4081 Qin Shi Huang's National Road System
次小生成树的变形 求出最小生成树,然后DFS把最小生成树变为有根数,同时计算任意两个节点间的瓶颈路maxcost[u][v](即u,v路径上的最长边),方法如下:当访问至一个新节点u时,枚举所有已访问过的节点x,则maxcost[x][u] = max( maxcost[x][v], w[u][v]),其中v是u的父节点。时间复杂度为O(n2)那么此题便可以枚举免费的那条路,若这条路在最小生成树上则B 为mst - G[u][v],否则 B = mst - maxcost[u原创 2013-10-22 12:37:25 · 738 阅读 · 0 评论 -
hdu4085 Peach Blossom Spring
看题表示不会,百度后发现是斯坦纳树,又没见过...大致是状态DP通过枚举子树或者最短路来状态转移若两种状态集合没有交集,则可以直接合并 dp[ i ][ j ]=min{ dp[ i ][ j ],dp[ i ][ k ]+dp[ i ][ l ] },其中k和l是j的两个互补的子集若i和i'之间有边相连, 那么可以通过spfa的三角不等式进行状态转移 dp[ i ][ j ]=min{ dp[ i ][ j ],原创 2013-10-22 13:00:06 · 686 阅读 · 0 评论