摘要:
http://poj.org/problem?id=3020 无向图的最小路径覆盖,问我们每两个相邻的城市可以共用一个无线,最少要多少个无线设备。我们将每个城市编号,相邻的城市连一条边,每个城市都是X中的结点也是Y当中的结点,求出最大匹配后,利用无向图最小路径覆盖的公式:顶点数 – 最大匹配 / 2 = 最小路径覆盖。/*Memory: 976K Time: 16MSLanguage: C++ Result: Accepted*/#include<cstring>#include<cstdio>#include<cstdlib>const int MAXD 阅读全文
posted @ 2012-04-04 17:01
找回失去的
阅读(209)
评论(0)
推荐(0)
摘要:
http://poj.org/problem?id=2594 允许路径重叠的最小路径覆盖,将连通的点(有向)都连成边,这个用floyd来处理,再用匈牙利算法求出最大匹配,最后用公式求出最小路径覆盖。 公式: 顶点数 – 最大匹配 = 最小路径覆盖。/*Memory: 428K Time: 782MSLanguage: C++ Result: Accepted*/#include<cstring>#include<cstdio>#include<cstdlib>const int MAXD = 505;int n, m;bool map[MAXD][MAXD] 阅读全文
posted @ 2012-04-04 16:24
找回失去的
阅读(228)
评论(0)
推荐(0)
摘要:
http://poj.org/problem?id=3041给一个N*N的矩阵,有些格子有障碍,要求我们消除这些障碍,问每次消除一行或一列的障碍,最少要几次。这里将每行x看成一个X结点,每列Y看成一个Y结点,障碍的坐标x,y看成X到Y的一条边,构建出图后,就变成了找最少的点,使得这些点与所有的边相邻,即最小点覆盖问题。又继续敲了一遍匈牙利算法…/*Memory: 424K Time: 47MSLanguage: C++ Result: Accepted*/#include<cstdio>#include<cstring>#include<cstdlib>#d 阅读全文
posted @ 2012-04-04 13:59
找回失去的
阅读(2736)
评论(0)
推荐(2)
摘要:
求出次小生成树与最小生成树比较,如果相等则不唯一,否则输出最小生成树的权值。这道题整整花了两个小时的时间,用的是prim算法,用Tlink记录边是否在MST中,然后枚举不在树中的边,用其权值w[u][v]代替max[u][v]。max[u][v]是MST中连结两点u,v唯一的路中权值最大的那条边的权值。/*Memory: 272K Time: 0MSLanguage: C++ Result: Accepted*/#include<cstdio>#include<cstring>#include<cstdlib>const int inf = 0x3f3f3f 阅读全文
posted @ 2012-04-04 11:55
找回失去的
阅读(309)
评论(0)
推荐(0)
浙公网安备 33010602011771号