
最短路~SPFA算法(可求负边权)
文章平均质量分 78
暮光乐鱼
这个作者很懒,什么都没留下…
展开
-
hdu 2544 最短路(SPFA算法)
本题链接:点击打开链接 本题大意: 首先输入一个n,m。代表有n个点,m条边。然后输入m条边,每条边输入两个点及边权。1为起点,n为终点。输入两个零表示结束。 解题思路: 本题可以使用SPFA算法来做,此算法与dijkstra算法的区别在于,此算法可以计算边权为负值的情况。使用此算法首先需要用邻接表建图,用dis数组存放当前点距起点的最短权值之和,用mark原创 2015-08-19 21:07:06 · 641 阅读 · 0 评论 -
poj 3259 Wormholes
本题链接:点击打开链接 本题大意: 本题题意看了大半天也是没弄明白 -_-|||,然后去poj原题讨论区看看,终于弄懂了题目。题意是:先输入一个F,代表有F组测试数据;每组测试数据先输入N、M、W,表示有N个点,M条无向边,W条有向边,并且,该有向边的权值应取负值(输入的是正数),接下来输入M+W条边,每条边都是两个顶点+权值;然后让判断能否产生环,若能,输出YES,否则输出N原创 2015-08-19 17:21:54 · 667 阅读 · 0 评论 -
hdu 1874 畅通工程续(SPFA算法)
本题链接:点击打开链接 本题大意: 输入n,m;代表有n个点,m条边。然后输入边权值及两个顶点。再输入起点和终点。求从起点到终点的最短路程,若不存在,输出-1。 解题思路: 基本的球最短路问题,使用SPFA算法从起点开始依次进行查找即可。具体请参考代码: #include #include #include #define MAXN 220 #de原创 2015-08-19 21:14:43 · 773 阅读 · 0 评论 -
hdu 1869 六度分离(SPFA算法)
本题链接:点击打开链接 本题大意: 输入n,m,代表有n个点,m条边;然后输入m个点,让证明“六度分离”的正确性,不妨设每条边的权值为1,则只需求任意两个人的最短距离是不是满足要求即可。因为最多隔六个人,故两人间的距离只要小于7就满足。具体请参考代码: #include #include #include #define MAXN 110 #define MAXM 4原创 2015-08-19 21:24:31 · 671 阅读 · 0 评论 -
hdu 2066 一个人的旅行(SPFA算法)
本题链接:点击打开链接 本题大意: 输入T,S,D,表示有T条边,S个起点,D个终点;每条边输入两个点及边权,然后输入起点和终点;本题关键是有多个起点,从而求最短距离不好求,可采取相应方法进行简化,将每个起点与另外的一个点连接,使其边权为0,这样即可使起点变成一个;然后比较到每个终点的距离即可。参考代码: #include #include #include #incl原创 2015-08-19 21:36:03 · 909 阅读 · 0 评论 -
SPFA算法的基础变形应用
给出下列不等式: x1 - x2 x1 - x5 x2 - x5 x3 - x1 x4 - x1 x4 - x3 x5 - x3 x5 - x4 求出该不等式组的一组解; 对于此不等式组,可将其稍作变形:X1 #in原创 2015-08-20 10:32:30 · 629 阅读 · 0 评论 -
hdu 2680 Choose the best route (SPFA算法)
本题链接:点击打开链接 本题大意: 输入n,m,s,代表有n个点,m条边,s代表终点。然后输入边,每条边输入p,q,t;p,q代表两个点,t表示边权,注意题目中说是从p指向q边,故应建立有向图。然后输入w表示有w个起点,然后输入起点;对于多个起点,如果对每个起点使用一次SPFA,则起点多的话可能会有点麻烦,所以不妨这样进行处理:另外设置一个不与题目中重合的点,将所有起点到此点的原创 2015-08-20 08:46:13 · 648 阅读 · 0 评论