图论_最短路
文章平均质量分 52
liujc_
这个作者很懒,什么都没留下…
展开
-
单源最短路问题 dijkstra算法 总结
Dijkstra(迪杰斯特拉)算法,用于计算一个节点到其他所有节点的最短路径。要注意的是这个算法中路径的权值不能有负边,如果有负边的话要运用bellman ford算法。 学习了一下dijkstra算法,感觉跟最小生成树的Prim算法有点类似。感觉dijkstra也是一个贪心的策略,用集合S表示的是已经找出最小路径的点,用dis[]来表示每个点当前距离源点的最短距离。再用一个数组来存储两点之原创 2015-04-11 17:09:16 · 1059 阅读 · 0 评论 -
旅行商问题 TSP问题 状压dp入门 + floyd poj 3311 hdu 5418
旅行商问题 & TSP问题:有n个城市,从起点 0 开始游历每一个城市,只访问每个城市一次,最后回到起点,所需要的最短路径是多少? 这个属于NP完全问题。最直接的方法就是枚举法,解空间为n个元素的所有排列组合,为(n−1)!(n-1)!。n稍微一大就无法在有限的时间内做出。还有一些模拟退火算法什么的,这个不太了解,有空再去了解下。 在acm中,对于此问题,n一般都不大,可以运用floyd + 状原创 2015-09-11 15:35:01 · 3848 阅读 · 5 评论 -
hdu 1690 floyd
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1690 出现了两个傻逼错误··· 找了十年。 将数组大小M开成了4。。hdu 好像不能用lld。得用I64d。 教训: 再简单的题也要小心,防止傻逼错误。。努力1Y。#include <iostream> #include <cstdio> #include <cstring> #include <al原创 2015-08-05 15:41:09 · 382 阅读 · 0 评论 -
hdu 1596 floyd
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1596 同一张图多次询问,使用floyd最好. O(n3n^3)的复杂度,看一下数据范围 1000 还是可以。 较水 但是还是WA了一发。。 0表示两点之间没有通路,所以如果不能到的话应该是0。 由于是double 小心精度总是好的。#include <iostream> #include <cst原创 2015-08-04 17:20:23 · 454 阅读 · 0 评论 -
08/13 D -> codeforces Round #Pi div 2 E. President and Roads 最短路变形
链接:http://codeforces.com/contest/567/problem/E 题意: 总统只走最短路,给了一个有向图,对于每条边判断是否一定走这条路,如果一定输出 yes如果不一定,那么是否可以减少这个边的权值使得总统一定走这条路,如果可以输出最少减少多少 can ** ,如果不行 输出no。 分析: 对于每个图可能有不只一条的最短路,要找出每条边是否一定要走,如果这条边是在原创 2015-08-15 13:56:35 · 715 阅读 · 0 评论 -
floyd + 记录路径 hdu 1385
floyd算法: 用于求解全源最短路径问题,也就是任意两点间的最短路径。 定义d[k][i][j]为只使用0~k的情况下以i为起点到j的最短路径。 将0~k的情况归约到0~k-1的情况。当0~k时,分为两种情况一种是只经过k一次,另一种是不经过k。若不经过k,那么d[k][i][j] = d[k-1][i][j]。如果经过k,那么d[k][i][j] = d[k-1][i][k]+d[k-1]原创 2015-08-01 14:04:38 · 1207 阅读 · 1 评论 -
hdu 2112 最短路 dijkstra优先队列
http://acm.hdu.edu.cn/showproblem.php?pid=2112 还算蛮裸的,就是需要运用一下map,将字符串映射成一个int,对于map的运用还不够熟悉。。。 Map如果要查找一个元素是否出现在这个map之中的话就可以运用.count(),看他出现的次数,如果是0,肯定就没有出现过。还有一个就是要注意,每一个kase都需要重置这个map,运用.clear()。原创 2015-04-16 16:22:19 · 513 阅读 · 0 评论 -
soj 4243 最短路 spfa实现
题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=4243 第一个不是太水的最短路问题,感觉李大婶说的很有道理,图论的关键在于怎么建图,这题着实体会了一下,还是看一姐ppt的思路才有点想法的。 主要的思路就在于对于每一个格子都会有所对应的一个要消耗的生命值,每一个原创 2015-04-13 23:52:34 · 655 阅读 · 0 评论 -
hdu 2680 最短路基础题 spfa实现 算法总结
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2680 题目大意,就是一个人可以从多个起点开始出发,看到终点的最短路是多少。。只有可以运用和hdu2066一样的思想,对于每个起点可以看成是跟最最开始的点之间有一条权值为0的边。可以把最开始的点记做0点。那这样就可以使用单源最短路了。之前都没有用过spfa,今天来运用了一下。 算法大致流程是用原创 2015-04-13 09:00:31 · 1059 阅读 · 0 评论 -
poj 2387 最短路 spfa 实现
http://poj.org/problem?id=2387 题目大意就是求最短路,从n到1的最短路。就用来熟悉一下spfa的写法。 一开始贡献了好几次wa,结果发现是因为n,m写反了。。。。 没有什么拐弯的地方,来熟悉spfa直接附上代码: #include #include #include #include #include using namespace std; #de原创 2015-04-13 09:31:58 · 1208 阅读 · 0 评论 -
hdu 2066最短路 dijkstra 及其优先队列优化
http://acm.hdu.edu.cn/showproblem.php?pid=2066 一开始想运用跟之前soj的办法,就是把每个起点都进行一次dijkstra,然后记录下每个顶点下的最短路。。后来发现其实对于车站可以看做与起点之间有一条权值为0的边,那么这样就可以直接使用单源最短路算法了。 0、要注意的就是这里并没有给出顶点的个数,只知道上限是1000,就要记录下顶点的最大的序号原创 2015-04-12 15:51:01 · 668 阅读 · 0 评论 -
单源最短路问题 bellman-ford算法
贴一个Bellman-Ford算法寻找单源最短路径的时间复杂度为O(V*E).原创 2015-04-11 20:07:10 · 653 阅读 · 0 评论 -
poj2226 二分图匹配经典行列建图
http://poj.org/problem?id=2226 题目大意: 如何放木板保证只覆盖到’*’ 而没有覆盖到’.’。 思路: 进行行列建图,将横着的木板作为二分图中一侧的点,竖着的木板作为另一侧,定义出二分图。对于每一个’*’的点,考虑横着的木板如何覆盖它,竖着的如何覆盖,如何定义横着覆盖它的木板的编号,其实就可以把每一个需要覆盖的顶点所在的泥地上的最左端的顶点作为横着木板的编号,所原创 2016-04-30 17:00:32 · 1432 阅读 · 0 评论