摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1874这题坑在于会出现重边,必须保留小的那个#include#include#define MAX 9999999int map[1000][1000];int vertex,edge;void init(){ int i,j; for(i=0;iw) map[x][y]=map[y][x]=w; } floyd(); scanf("%d%d",&x,&y); if(map[x][y]>=MAX)printf("-1\n... 阅读全文
posted @ 2013-08-27 20:36 执着追求的IT小小鸟 阅读(181) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1869这题是简单的弗洛伊德算法的转变,在最后判定的时候是跟7进行判定,因为点与点间的路径是没用算上本身那个cost的#include#include#define MAX 9999999int map[1000][1000];int vertex,edge;void init(){ int i,j; for(i=0;i7)return 0; } return 1;}int main(){ int i,j,x,y; while(scanf("%d%d",&vertex... 阅读全文
posted @ 2013-08-27 20:18 执着追求的IT小小鸟 阅读(163) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1385这个是模板题目。核心算法:通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度,称D(n)为图的距离矩阵,同时还可引入一个后继节点矩阵path来记录两点间的最短路径。采用的是(松弛技术),对在i和j之间的所有其他 阅读全文
posted @ 2013-08-27 20:17 执着追求的IT小小鸟 阅读(202) 评论(0) 推荐(0) 编辑