上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: //题目大意:判断最小生成树是否唯一//解题思路:求出最小的次小生成树,判断最小的次小生成树是否与最小生成树的权值和一样,如果一样,则唯一,否则不唯一//求次小生成树的算法:(1)有个比较直观的方法。依次把MST上的边删掉,然后再做MST。这样的做就是编码简洁,有模块可以重用。效率O(n*O(MST))(2)既然每替换出去一条边,都将使代价变大。所以求次小生成树,只需要替换出去一条边即可。枚举不在... 阅读全文
posted @ 2010-04-30 22:28 北海小龙 阅读(360) 评论(0) 推荐(0) 编辑
摘要: //最小生成树求生成树中的最大边,使用Kruskal算法//总结:re错误为开的数组太小#include <stdio.h>#include <algorithm>using namespace std;#define nodesize 2001#define edgesize 10001typedef struct node{int v;//起点int u;//终点__i... 阅读全文
posted @ 2010-04-30 22:27 北海小龙 阅读(253) 评论(0) 推荐(0) 编辑
摘要: //题目大意:最大生成树//解题思路:在排序的时候按从大到小排即可,其余与Kruskal算法一样//注意:如果使用Prime算法注意考虑重边的情况,Kruskal算法不必考虑重边的情况(因为是将边进行排序,当一条边已经加入的时候,不可能加入重边)#include <stdio.h>#include <algorithm>using namespace std;#define... 阅读全文
posted @ 2010-04-30 22:27 北海小龙 阅读(295) 评论(0) 推荐(0) 编辑
摘要: //最小生成树:Kruskal算法#include <stdio.h>#include <algorithm>using namespace std;#define arraysize 15001#define nodenum 1001typedef struct node{int start;//起点int end;//终点int w;//费用};node edges[a... 阅读全文
posted @ 2010-04-30 22:26 北海小龙 阅读(234) 评论(0) 推荐(0) 编辑
摘要: //题目类型:最短路类型//算法实现:Dijkstra(邻接表+优先级队列) ,使用此算法效率非常高,只有2094MS #include <stdio.h>#include <iostream>//#include <conio.h>#include <queue>using namespace std;#define arraysize 10000... 阅读全文
posted @ 2010-04-28 22:42 北海小龙 阅读(333) 评论(0) 推荐(0) 编辑
摘要: //解题思路:类似于POJ1860题,是Bellman-Ford算法的变形#include <iostream>#include <map>#include <string>using namespace std;#define arraysize 10000//边值数组开得大一些,否则会出现RE错误typedef struct node{int ci;int ... 阅读全文
posted @ 2010-04-28 22:41 北海小龙 阅读(250) 评论(0) 推荐(0) 编辑
摘要: //使用Floyd的变形实现//这就是个套汇的问题,可以用Floyd求最大环,然后判断是不是大于1。#include <cstdio>#include <string>#include <map>using namespace std;map<string,int> MAP;double value[31][31];double rate;doubl... 阅读全文
posted @ 2010-04-28 22:41 北海小龙 阅读(231) 评论(0) 推荐(0) 编辑
摘要: //解题思路:这道题是一道关于floyd的图论题。题目的意思是说有n头牛比赛,m种比赛结果,最后问你一共有多少头牛的排名被确定了,其中如果a战胜b,b战胜c,则也可以说a战胜c,即可以传递胜负。//这样如果一头牛的被x头牛打败,打败y头牛,且x+y=n-1,则我们容易知道这头牛的排名就被确定了,所以我们只要将任何两头牛的胜负关系确定了,在遍历所有牛判断一下是否满足x+y=n-1,将满足这个条件的牛... 阅读全文
posted @ 2010-04-28 22:40 北海小龙 阅读(374) 评论(0) 推荐(0) 编辑
摘要: //Bellman-Ford算法的变形,关键理解松弛操作#include <stdio.h>#include <string.h>//引入memset的头文件#define arraysize 1001#define nodesize 101//将每种货币兑换后的价值作为结点typedef struct node{int u;//要兑换的货币int v;//目的货币doub... 阅读全文
posted @ 2010-04-28 22:39 北海小龙 阅读(197) 评论(0) 推荐(0) 编辑
摘要: //题目大意:求源点到其余各点的最短距离中的最大值//解题思路:使用Floy算法实现#include <stdio.h>#include <string.h>#define arraysize 101int maxData = 0x7fffffff;//定义最大值int dis[arraysize][arraysize];char data[100];int n;void ... 阅读全文
posted @ 2010-04-28 22:39 北海小龙 阅读(309) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页