题目大意:有n个节点p条无向边,现在可以选择其中的任意K条免费,如果必须的边多与K跳,则花费多余所需边中权值最大的一个,求最小花费多少。分析:最短路+二分我们可以二分答案mid,对于每一个mid求最短路,将最短路中大权值大于mid的边作为免费的集合,否则作为不免费的集合,验证免费集合大小是否大于K这...
分类:
其他好文 时间:
2014-07-07 23:07:21
阅读次数:
234
通过做这题,发现了自己的问题很大,做题不是贴代码,而是要了解思想;这题考的是有一个起点的集合,求起点集合到一个终点的最短距离,本来想用Floy的但一看map[1000][1000]超时,有向图,逆序建邻接矩阵,这样就成了一个终点到所有点的最短路了。 1 #include 2 #include ...
分类:
其他好文 时间:
2014-06-29 18:40:11
阅读次数:
170
http://acm.hdu.edu.cn/showproblem.php?pid=2544DJ#include #include #include #include #include #define N 1000001using namespace std;int map[101][101];in...
分类:
其他好文 时间:
2014-06-29 18:27:50
阅读次数:
285
C版本(来自最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)) 1 /*************************************** 2 * About: 有向图的Dijkstra算法实现 3 * Author: Tanky Woo 4 * ...
分类:
其他好文 时间:
2014-06-28 10:13:49
阅读次数:
175
此题最大最小搞的太复杂。。。并查集维护连通块,连通块内floyd就可以了
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define eps 1e-6
#define ll __int64
using...
分类:
其他好文 时间:
2014-06-28 08:57:24
阅读次数:
218
该算法的基本思想就是按照拓扑排序的顺序依次将每个顶点加入到最短路径树中,每次加入时将该顶点延伸出的所有顶点进行“放松”操作。这种算法的复杂度是E+V。
代码
这种算法的代码比Dijkstra还要简单,代码如下:
public class TopologySP extends SP {
public TopologySP(EdgeWeightedDigr...
分类:
其他好文 时间:
2014-06-27 10:17:22
阅读次数:
247
题目地址:http://poj.org/problem?id=2112
最近忙着预习课本备考,没怎么刷题,(我是真的有在好好看书。。)不敲题还是手痒痒,马上就邀请赛了,还是每晚睡觉前都拿来刷题吧。白天的时间足够了。
话说这题调了一晚上。。。一直以为是几天没敲状态下滑。。(虽然也没几天。。)当发现错误的时候才发现原来是少敲了个字母。。。而且我一般很少在bfs的那个地方出错,错误地方也很隐蔽。。所...
分类:
其他好文 时间:
2014-06-27 09:12:36
阅读次数:
196
负权指的是一张图中包含一条权重小于0的边。负环指的是一张图中存在权重只和为负数的环。如果一张图中存在负环,那么这张图是没有最短路径的。
那么,假设图中不存在负环,但是有负权,那么最短路径如何求解呢?答案就是使用Bellman-Ford算法,该算法的性能一般。
基本思想
Bellman-Ford算法的基本思想就是对图中所有的边都进行V次“放松”操作。...
分类:
其他好文 时间:
2014-06-27 08:45:57
阅读次数:
195
题意:N,T,S,E:给你T条边,每条边两端都有编号和权值,问从S走到E允许走N条边,求最短路。
foyld加矩阵快速幂思想。
注意要把边离散
#include
#include
#include
#include
using namespace std;
#define M 303
#define inf 0x3fffffff
struct node
{
...
分类:
其他好文 时间:
2014-06-27 07:39:23
阅读次数:
178