![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
_pkm_
love coding
展开
-
POJ 2449 Remmarguts' Date (A* 第k短路)
题目链接给出n个点,m条边的有向图,问s到t的第k短路长度。使用A*进行计算,每次不判重,把每一个点的相邻的所有状态加入到扩展集合中,判断t出队的次数为k就是k短路。 这里的 A *的H函数我们用单源最短路径计算从t到每个点的最短距离,因为是有向图计算的时候把图反向一下。注意:当s==t的时候,k需要加以1。//#include<bits/stdc++.h>#include<iostream>#原创 2016-08-31 09:51:59 · 290 阅读 · 0 评论 -
poj 1986 Distance Queries (LCA 倍增)
题目链接 题意:给出一颗带权树,询问点对(u,v)路径上的取值和 可以使用 树链剖分做,是没有更新的查询很简单,今天学下倍增计算lca,使用倍增做一下,先dfs跑出树的每个节点的深度,以及每个节点的2的次幂的父亲节点,然后就暴力跑一跑,题目给出的树可能是不连通的#include<stdio.h>#include<cstring>#include<vector>using namespac原创 2016-12-01 11:30:32 · 392 阅读 · 0 评论 -
BZOJ 3732: Network(最小生成树+倍增)
题目链接 题意:给出一个图,每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少很明显最终查询的边一定是在最小生成树里面的,先跑出最小生成树,然后,可以树链剖分,也可以使用倍增来计算#include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define sz(x原创 2016-12-01 11:47:43 · 421 阅读 · 0 评论