这个题目是自己瞎搞弄出来的答案,不知道有没有更优的方法,但是,也说下自己的思路好了
首先明确题目要求,要先从点s出发,然后最短的回到s的路径,所以必然有两种情况
1:出发之后回不来
2:出发之后回来
好吧,确实有点废话,假设第一个到的点为t
则1和2的情况都是求t到s的最短路径,所以只要把从s能达到的点都求一遍最短路径就可以了
但是本题需要注意的问题是
1:在给的有向图中,即边会重复,所以要求一个最短的保存在邻接矩阵中
2:这也是最大的bug,竟然会有s-s的边,这样的话,采用上面的方法就会有点瑕疵了,因...
分类:
其他好文 时间:
2014-11-20 17:05:18
阅读次数:
166
题意: 给一些圆,要求从第一个圆的圆心走到最后一个圆的圆心,中间路径必须在某个圆内,求最短路径的长度。解法: 易知要保持在圆内且路径最短,走两圆相交的点能使路径尽量短,所以我们找出所有的两圆相交的点,再加上起点和终点,放到一个容器中,去重后,判断每两点之间的线段是否都在圆内,如果是则建边,建完所有的...
分类:
其他好文 时间:
2014-11-19 12:32:02
阅读次数:
265
经典的贪心策略 Prim算法,Kruskal算法求最小...
分类:
编程语言 时间:
2014-11-19 01:52:38
阅读次数:
173
题目大意:
每个字符串的首字母和尾字母代表街道的两个路口,是双向的,字符串的长度是街道的长度,邮递员需要穿过所有的街道,求邮递员走的最短路径。
解题思路:
当所有点的入度都是偶数说明成环,直接所有边的边长相加即可。若有奇数度 ,则是所有边长相加以后再加上从奇度点到奇度点的最短路径。
SPFA算法+邻接表。...
分类:
编程语言 时间:
2014-11-17 10:51:52
阅读次数:
333
目录 一、前言 二、正则表达式的使用诉求 三、java.util.regex包 四、java.lang.String实例 五、最短路径实现诉求 六、Java支持的正则表达式功能语...
分类:
编程语言 时间:
2014-11-16 20:14:21
阅读次数:
179
给出两点,求这两点在图上的最短路径
分别以最上,左下,右下为顶点,看这个三角图形
ans=这三种情况下两点的层数差
#include "stdio.h"
#include "string.h"
#include "math.h"
int main()
{
int n,m,sn,sm,rn,rm,ln,lm,ans;
while (scanf("%d%d",&n,&...
分类:
其他好文 时间:
2014-11-16 18:45:31
阅读次数:
161
目录 一、前言二、正则表达式的使用诉求三、java.util.regex包四、java.lang.String实例五、最短路径实现诉求六、Java支持的正则表达式功能语法七、总结八、参考一、前言 ...
分类:
编程语言 时间:
2014-11-16 18:34:29
阅读次数:
349
题目大意:带边权的树,给点一个根,问从根出发遍历某些点,所需的最小花费。
这既然是一棵树,那么从起点k到任意一个的路径都是唯一确定的(这就是树形的好处),我们可以深搜它的孩子,在过程中如果没有要访问的节点就直接返回。
否则将这条路径都标记。而且题目中可知不一定要返回到其实位置,那么可以在某个点停下。
sum[0][u]:回到u点的最短路径
sum[1][u]:不回到u点的最短路径
sum...
分类:
其他好文 时间:
2014-11-16 12:09:45
阅读次数:
142
适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回路,但这不是我们讨论的重点。...
分类:
编程语言 时间:
2014-11-16 00:30:13
阅读次数:
253
列举了深度优先搜索的递归和非递归算法,Dijkstra最短路径算法,
基于Bellman-Fort最短路径算法的改进型广度优先搜索算法,
Floyd-Warshall最短路径算法的原始版和变化版
本文是阅读《啊哈!算法》后的学习笔记,代码与教材中有些差异,若有错误请指正,谢谢!...
分类:
编程语言 时间:
2014-11-13 22:31:20
阅读次数:
277