摘要: http://poj.org/problem?id=1125题意:要求找到消息传递给所有人,先传递给谁最快并求出传递的时间.赤裸裸的Floyd找任意一点到其他点的最短路径输入:第一行输入一个数字n,表示有n个人. 若n==0表示测试结束. 接下来输入n行数据,每一行开头输入一个m,表示接受这人消息的人的个数. 然后输入m对数据,每对数据表示接收消息的人的号码和所需要时间.输出:输出传递最快的人和传递时间,号码和时间中间有1个空格.View Code 1 #include <iostream> 2 using namespace std; 3 const int MAX = 100 阅读全文
posted @ 2012-08-31 20:28 zx雄 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Floyd算法能求出任意两点最短路径,时间复杂度为O(n^3)遍历每个节点,且遍历每个点作为中间点做松弛.图:1 4 21 2 92 3 13 4 3初始化:不能直接初始化为0,下面的代码有对边权值的比较,若初始化为0,会出现错误.if(i == j)时,初始化为0是因为节点到本身的距离为0,若不初始化为0,则会被改为与它相邻最小边的二倍. 1 for(i=1;i<=4;i++) 2 { 3 for(j=1;j<=4;j++) 4 { 5 if(i == j) 6 { 7 ... 阅读全文
posted @ 2012-08-31 17:24 zx雄 阅读(247) 评论(0) 推荐(0) 编辑