poj2485 Highways(prim java)
来源:互联网 发布:广州seo顾问 编辑:程序博客网 时间:2024/06/03 21:57
package prim;
import java.util.Scanner;
/**问题请参考http://poj.org/problem?id=2485
* @author rayli
* @date:2014-7-28 下午2:52:24
* 题意 :一个小岛上 要建高速公路,该小岛上有N个村庄,给出 每个村庄到其他村庄的 距离。
* 即 给出一个含有 N个顶点的无向完全联通图,求 该图生成的最小生成树边集中的最大权值;
*
*/
public class Highways
{
static int map[][];//无向图的边
int ans; //最大权值
void prim()
{
ans = -1;
int cost[] = new int[map.length];//cost[j]为temp没加入到生成树集合U前节点j到生成树的最小花费
for(int i=0; i<map.length; i++)
{
cost[i] = map[0][i];
}
for(int i=0; i<map.length-1; i++)
{
int minum = Integer.MAX_VALUE;
int tmp = 0;
for(int j=0; j<map.length; j++)
{
if(cost[j] > 0 && minum > cost[j])
{
minum = cost[j];
tmp = j;
}
}
if(ans < minum)
ans = minum;
cost[tmp] = 0;
for(int j=0; j<map.length; j++)
{
if(map[tmp][j] < cost[j])
{
cost[j] = map[tmp][j];
}
}
}
}
void output()
{
System.out.println(ans);
}
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
//树的个数
int n = cin.nextInt();
for(int i=0; i<n; i++)
{
int m = cin.nextInt();//村庄的个数即定点的个数
map = new int[m][m];
for(int j=0; j<m; j++)
for(int k=0; k<m; k++)
{
map[j][k] = cin.nextInt();
}
Highways hw = new Highways();
hw.prim();
hw.output();
}
cin.close();
}
}
import java.util.Scanner;
/**问题请参考http://poj.org/problem?id=2485
* @author rayli
* @date:2014-7-28 下午2:52:24
* 题意 :一个小岛上 要建高速公路,该小岛上有N个村庄,给出 每个村庄到其他村庄的 距离。
* 即 给出一个含有 N个顶点的无向完全联通图,求 该图生成的最小生成树边集中的最大权值;
*
*/
public class Highways
{
static int map[][];//无向图的边
int ans; //最大权值
void prim()
{
ans = -1;
int cost[] = new int[map.length];//cost[j]为temp没加入到生成树集合U前节点j到生成树的最小花费
for(int i=0; i<map.length; i++)
{
cost[i] = map[0][i];
}
for(int i=0; i<map.length-1; i++)
{
int minum = Integer.MAX_VALUE;
int tmp = 0;
for(int j=0; j<map.length; j++)
{
if(cost[j] > 0 && minum > cost[j])
{
minum = cost[j];
tmp = j;
}
}
if(ans < minum)
ans = minum;
cost[tmp] = 0;
for(int j=0; j<map.length; j++)
{
if(map[tmp][j] < cost[j])
{
cost[j] = map[tmp][j];
}
}
}
}
void output()
{
System.out.println(ans);
}
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
//树的个数
int n = cin.nextInt();
for(int i=0; i<n; i++)
{
int m = cin.nextInt();//村庄的个数即定点的个数
map = new int[m][m];
for(int j=0; j<m; j++)
for(int k=0; k<m; k++)
{
map[j][k] = cin.nextInt();
}
Highways hw = new Highways();
hw.prim();
hw.output();
}
cin.close();
}
}
阅读全文
0 0
- poj2485 Highways(prim java)
- POJ2485《Highways》方法:Prim
- POJ2485 Highways【Prim】
- poj2485 highways 之prim解法
- POJ2485,Highways,最小生成树继续Prim
- POJ2485 Highways
- POJ2485 Highways
- poj2485 Highways
- Highways(POJ2485)
- poj2485 Highways
- poj2485 - Highways
- POJ2485--Highways
- poj2485 Highways
- poj2485 - Highways
- poj2485--Highways
- POJ2485 - Highways
- POJ2485---Highways
- POJ2485 Highways
- poj2109 Power of Cryptography(java)
- poj2586 Y2K Accounting Bug(贪心,java)
- poj 1573 Robot Motion(java 模拟)
- poj 1125 Stockbroker Grapevine
- poj1860 Currency Exchange(java + bellman-Ford)
- poj2485 Highways(prim java)
- poj 3026 Borg Maze(java bfs + prim)
- poj 1258 Agri-Net( java prim)
- poj 1789 Truck History(java + prim)
- poj 1094 Sorting It All Out(java + 拓扑排序)
- poj 3020 Antenna Placement(java + 匈牙利算法)
- Java项目经验——程序员成长的钥匙
- poj 3041 Asteroids(java + 匈牙利算法)
- int main(int argc,char* argv[])详