摘要:
Floyd算法摘自:百度百科:http://baike.baidu.com/view/14495.htm百科名片弗洛伊德算法Floyd算法又称为弗洛伊德算法,插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。核心思路通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);……;最后又用同样的公式由D(n-1)构造 阅读全文
posted @ 2013-06-05 16:41
再见~雨泉
阅读(750)
评论(0)
推荐(0)
摘要:
kruskal算法摘自:百度百科http://baike.baidu.com/view/247951.htm百科名片K r u s k a l算法每次选择n- 1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的 具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。K r u s k a l算法分e 步,其中e 是网络中边的数目。按耗费递增的顺序来考虑这e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集合中会出现环路,则将其抛弃,否则,将它选入。Kruskal算法算法定义克鲁斯卡尔算法假设 WN=(V,{E}) 是一个含有 n 个顶 阅读全文
posted @ 2013-06-05 16:39
再见~雨泉
阅读(910)
评论(0)
推荐(0)
摘要:
题目大意:就是说两个人交换选一些数,如果a,b被选过了,那么k*a+m*b(k,m >=0 )这样的数就不能再被选择,现在给你一些还没有选的数,问选哪个数可以使你必胜如样例:2 5如果你选2,由于3已经选过了,而2+3=5,所以5也不能备选择。所以选2就为必胜的选择我的思路:,这道题的最初要想到的就是,由于题目的给的数的范围很小,<=20。所以表示这些数的集合就可以用二进制模拟。用一个DP数组就可以存下,他有两个值就是0和1,表示必胜和必输两个状态。详见代码: 1 #include <cstdio> 2 #include <cstring> 3 #inclu 阅读全文
posted @ 2013-06-05 15:12
再见~雨泉
阅读(1102)
评论(0)
推荐(0)

浙公网安备 33010602011771号