POJ 2485 Highways
2008-11-20 14:36
375 查看
这是prim的一个变型,求最小生成树中,最大的一条边,代码写法基本上也是一样的
#include<iostream>
#include<cstdio>
#include <vector>
using namespace std;
const int MAX = 501;
const int INF = 65537;
int c[MAX][MAX];
bool flag[MAX];
vector<int> U_Set;
//这道题目是prim的一个变形,求最小生成树中的,最大的一段长度
int Prim(int n)
{
int ans = 0;
U_Set.push_back(1);
flag[1] = true;
for(int i = 1; i < n; i++)
{
int start = 1;
int k = 1;
int end = 1;
int min = INF;
int U_len = U_Set.size();
for(int p=0;p<U_len;p++) {
start = U_Set[p];//每次取出U集合中一个点,与不是U集合中的点比较,取路程最小的一个
for(k=1;k<=n;k++)
{
if(start!=k&&c[start][k]<min&&!flag[k])
{
min = c[start][k];
end = k;
}
}
}
//找到那个点以后,flag置为true
flag[end] = true;
U_Set.push_back(end);
//边为start----end
//找到最小生成树中最大的那段
if(ans<min)
ans = min;
}
return ans;
}
int main() {
int i, j, n, m,T=1;
cin>>T;
while(T-->0) {
cin>>n;
for(i = 1; i <= n; i++)
{
for(j = 1; j <=n; j++)
{
//这里用cin会TLE
scanf("%d",&c[i][j]);
}
}
cout<<Prim(n)<<endl;
memset(flag,0,sizeof(flag));
U_Set.clear();
}
return 0;
}
#include<iostream>
#include<cstdio>
#include <vector>
using namespace std;
const int MAX = 501;
const int INF = 65537;
int c[MAX][MAX];
bool flag[MAX];
vector<int> U_Set;
//这道题目是prim的一个变形,求最小生成树中的,最大的一段长度
int Prim(int n)
{
int ans = 0;
U_Set.push_back(1);
flag[1] = true;
for(int i = 1; i < n; i++)
{
int start = 1;
int k = 1;
int end = 1;
int min = INF;
int U_len = U_Set.size();
for(int p=0;p<U_len;p++) {
start = U_Set[p];//每次取出U集合中一个点,与不是U集合中的点比较,取路程最小的一个
for(k=1;k<=n;k++)
{
if(start!=k&&c[start][k]<min&&!flag[k])
{
min = c[start][k];
end = k;
}
}
}
//找到那个点以后,flag置为true
flag[end] = true;
U_Set.push_back(end);
//边为start----end
//找到最小生成树中最大的那段
if(ans<min)
ans = min;
}
return ans;
}
int main() {
int i, j, n, m,T=1;
cin>>T;
while(T-->0) {
cin>>n;
for(i = 1; i <= n; i++)
{
for(j = 1; j <=n; j++)
{
//这里用cin会TLE
scanf("%d",&c[i][j]);
}
}
cout<<Prim(n)<<endl;
memset(flag,0,sizeof(flag));
U_Set.clear();
}
return 0;
}
相关文章推荐
- poj 2485 Highways
- POJ 2485--Highways
- POJ 2485 Highways 最小生成树
- POJ2485 Highways(最小生成树)
- POJ 2485 Highways 最小生成树
- POJ_2485 Highways
- 【二分+广搜】poj 2485 Highways
- poj 2485 Highways(Kruskal!)
- POJ 2485 Highways(Prim 和 Kruskal)
- POJ 2485 Highways(最小生成树-Prim)
- POJ:2485 Highways(最小生成树kruskal算法)
- poj 2485 Highways (prim)
- poj 2485 Highways 超级大水题 kruscal
- poj 2485 Highways
- poj2485 highways 之prim解法
- poj 2485:Highways
- POJ 2485 Highways
- poj 2485 Highways
- POJ_2485 Highways
- 文章标题 POJ 2485 : Highways(最小生成树--kruskal+并查集)