今天做的最多的事情就是纠错了,通过添加输出语句判断错误来源: 找到错误来源: wb = new XSSFWorkbook(input);//语句创建错误 网上查询发现是jar包的问题: 下图为poi的jar包各个用途:(本人需要的是excel) 读取表格: import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermo…
 系统大致流程: index.jsp输入站名(点击“出示站点信息”,跳转list.jsp读取表格):后台通过站名获得id:getIdbyname(String name)将id反馈至dijkstra(int vs,int vf),求得最短路径以及路径上的顶点(读取文档获得图Graph):dijkstra运行结果仍是数字,所以还要getNamebyid(int id);运用List<String>返回最短路径上的站点名称 最后反馈至succeed.jsp 源代码: servlet层: impor…
上篇博客我们详细的介绍了两种经典的最小生成树的算法,本篇博客我们就来详细的讲一下最短路径的经典算法----迪杰斯特拉算法.首先我们先聊一下什么是最短路径,这个还是比较好理解的.比如我要从北京到济南,而从北京到济南有好多条道路,那么最短的那一条就是北京到济南的最短路径,也是我们今天要求的最短路径. 因为最短路径是基于有向图来计算的,所以我们还是使用上几篇关于图的博客中使用的示例.不过我们今天博客中用到的图是有向图,所以我们要讲上篇博客的无向图进行改造,改成有向图,然后在有向图的基础上给出最小生成树…
/*//1.确定数据结构, mapf[i][j] 为点i到点j的距离 [ Infinity 2 5 Infinity Infinity Infinity Infinity 2 6 Infinity Infinity Infinity Infinity 7 1 Infinity Infinity 2 Infinity 4 Infinity Infinity Infinity Infinity Infinity ]; //2.如果源点为1,则 s = {1}, 则 v-s = {2,3,4,5};…
在网图和非网图中,最短路径的含义不同.非网图中边上没有权值,所谓的最短路径,其实就是两顶点之间经过的边数最少的路径:而对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,我们称路径上第一个顶点是源点,最后一个顶点是终点. 我们讲解两种求最短路径的算法.第一种,从某个源点到其余各顶点的最短路径问题. 1,迪杰斯特拉(Dijkstra)算法 迪杰斯特拉算法是一个按路径长度递增的次序产生最短路径的算法,每次找到一个距离V0最短的点,不断将这个点的邻接点加入判断,更新新加入的点到V0的距…
分析:可以求简单的任意两点间最短距离的稍微变形,一个板子题.  #include <iostream> #include <bits/stdc++.h> using namespace std; int inf = 0x3fffff; int gra[1005][1005]; int mon[1005][1005]; int vis[1005]; int dist[1005]; int cost[1005]; void dijkstra(int s,int d,int n) { m…
基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点vs(即从顶点vs开始计算). 此外,引进两个集合S和U.S的作用是记录已求出最短路径的顶点,而U则是记录还未求出最短路径的顶点(以及该顶点到起点vs的距离). 初始时,S中只有起点vs:U中是除vs之外的顶点,并且U中顶点的路径是"起点vs到该顶点的路径".然后,从U中找出路径最短的顶点,并将其加入到S中:接着,更新U中的顶点和顶点对应的路径. 然后,再从U中找出路径最短的顶点,并将其加入到S中:接着,更新U中的顶点和…
此处共同拥有两段代码: 一. 这段代码比較全面,当中參考了github上的相关源代码. 能够说功能强大. //Dijkstra(迪杰斯特拉算法) #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 // 矩阵最大容量 #define INF 65535 // 最大值65535 #define isLetter(a) ((((a)>='a')&&((a)…
tip:这个算法真的很难讲解,有些地方只能意会了,多思考多看几遍还是可以弄懂的. 应用场景-最短路径问题 战争时期,胜利乡有 7 个村庄 (A, B, C, D, E, F, G) ,现在有六个邮差,从 G 点出发,需要分别把邮件分别送到 A, B, C , D, E, F 六个村庄,各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里 问:如何计算出 G 村庄到 其它各个村庄的 最短距离? 如果从其它点出发到各个点的最短距离又是多少? 迪杰斯特拉算法介绍 迪杰斯特拉(Dijkstr…
译者注:本文译自Scott H. Young的博客,Scott拥有超强的学习能力,曾在12个月内自学完成麻省理工学院计算机科学的33门课程.本文就是他个人对于这次MIT挑战的介绍和总结. 版权声明:本次翻译已经得到Scott本人授权,禁止任何形式的转载. --------------------------------------- 在接下来的12个月里,我将在不去上课的情况下,学完整个MIT四年分的计算机课程. 更新:MIT挑战现在已经结束了.我在2012年9月26日完成了挑战,距离开始时间2…