
最短路
Drin_E
中山纪念中学的蒟蒻,乐于交友
展开
-
Freda的传呼机
题目大意给定一个n个点,m条边的图,每个边最多仅在一个环中 有q个询问,每次询问给出任意两点x和y,输出x和y的最小距离。每个边最多仅在一个环中——仙人掌为了方便,我们先对原图进行一次spfa,设di[1]=0,算出其他的di。 然后建一个新图,每个环中,除顶点(原深度最小的点)外,都向顶点连一条权值为0的边,记录环的总长,同时删除环中的原边。 新图一定是棵树,于是我们就可以倍增求lca。原创 2016-05-24 20:35:42 · 736 阅读 · 0 评论 -
旅行
题目大意给定n个点,给出m条边。 给出k,选择使用一些边,求满足∑ki=1(i和n−i+1连通)\sum_{i=1}^k(i和n-i+1连通)的最小边权和。数据范围n,m<=10000,k<=4斯坦纳树模型:一个图中求给定的k个点相互连通的斯坦纳生成树 这题其实就是裸题。 如何求斯坦纳生成树呢 设d[i][j]表示以i为根的子树,k个关键点的选取状态为j(2进制数,0表示该点还没连通)时的最原创 2016-05-24 21:06:51 · 497 阅读 · 0 评论 -
K最短路问题(A*算法)
问题在有向带权图G,求从s到t的第k短路(不严格递增)的长度。A*算法通过一个估价函数f(x)来估计图中的当前点p到终点的距离,并由此决定它的搜索方向; 设g(x)表示走当前路径到x的长度,dis(x,y)表示x到y的最短距离,由于y只有等于t时才有用,所以我们可以连反向边,然后从t出发跑一遍最短路得到。 令f(x)=g(x)+dis(x,t) 建一个优先队列,初始将源点s加入到队列中; 每原创 2017-05-20 10:29:31 · 3127 阅读 · 0 评论