poj 1258
題目:給一個矩陣告訴每條邊的權,求最小生成樹。
題解:建樹之後直接用kruskal。
代碼:
#include <algorithm>
#include <iostream>
using namespace std;
struct node{//每條邊的兩頂點以及距離
int from;
int to;
int len;
}edge[5000];
int f[110];
int ans,n,m;
bool cmp(node a, node b){
return a.len < b.len;
}
int find(int x){//並查集
while(x!=f[x]){
x=f[x];
}
return x;
}
void join(int x,int y){
int fx=find(x);
int fy=find(y);
if(fx!=fy) f[fx]=fy;
}
int kruskal(){//最小生成樹
sort(edge,edge+m,cmp);//邊長度由小到大排序
ans = 0;
for(int i=0;i<=n;i++) f[i] = i;
for(int j = 0; j < m; j++){
if(find(edge[j].from) != find(edge[j].to)){//如何兩點未在一個並查集便合並
join(edge[j].from,edge[j].to);
ans+=edge[j].len;
//cout<<ans<<endl;
}
}
return ans;
}
int main(){
while(cin>>n){
m = n * (n-1) / 2;
int tot=0,x;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
cin>>x;
if(j<i)
{
edge[tot].from=i+1;
edge[tot].to=j+1;
edge[tot].len=x;
tot++;
}
}
cout<<kruskal()<<endl;
}
}
poj 1258
相關推薦
POJ 1258 Agri-Net(Prim)
rms exc name win style self mar enter needed 題目網址:http://poj.org/problem?id=1258 題目: Agri-Net Time Limit: 1000MS Memory Limit: 1000
POJ-1258 Agri-Net(kruskal最小生成樹)
require .org char long lte scan problem lec self Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 60255 Acce
POJ 1258 Agri-Net (Prim&Kruskal)
red struct 最小 std ring urn gin ostream size 題意:FJ想連接光纖在各個農場以便網絡普及,現給出一些連接關系(給出鄰接矩陣),從中選出部分邊,使得整個圖連通。求邊的最小總花費。 思路:裸的最小生成樹,本題為稠密圖,Prim算法求最小
poj 1258
pan 一個 tle join rom span -1 main 矩陣 題目:給一個矩陣告訴每條邊的權,求最小生成樹。 題解:建樹之後直接用kruskal。 代碼: #include <algorithm>#include <iostream>u
poj 1258 Agri-Net (最小生成樹)
Description Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all far
POJ 1258 Agri-Net(最小生成樹)
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 49376 Accepted: 20506 Description Farmer John h
poj-1258 Agri-Net(最小生成樹 Prim演算法)
Agri-Net Time Limit:1000MS Memory Limit:10000KB Description Farmer John has been elected mayor of his town! One of his campaign pro
poj 1258 Agri-Net(最小生成樹模板程式碼)
感覺用這題來當模板更適合。 題意就是給你鄰接矩陣求最小生成樹啦。~ prim程式碼:效率很高。172k...0ms。 #include<stdio.h> #include<alg
最小生成樹MST : poj 1258 Agri-Net+hdu 1102 Constructing Roads
最小生成樹的兩種演算法 定義:對於有權值的無向圖來說,其邊權值最小的生成樹稱作圖G的最小生成樹。 求解最小生成樹(Minimum Spanning Tree,簡稱MST)是圖相關演算法中常見的一
POJ-1258-Agri Ned
sort fat 農場 per 代碼 poj typedef += class 鏈接:https://vjudge.net/problem/POJ-1258#author=fuxianda 題意: 有n個農場,已知這n個農場都互相相通,有一定的距離,現在每個農場需要裝光
POJ 1258 Agri-Net(最小生成樹prim演算法)
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45283 Accepted: 18599 Descri
POJ 1258 Agri-Net(最小生成樹 Prim 模版題)
大意:新鎮長競選宣言就是將網路帶到每一個農場,給出農場個數,兩兩之間建光纜的耗費,求所有都聯通的最小耗費。 思路:最小生成樹,因為邊比較稠密,用Prim做。 PS;對於比較稠密的圖,用Prim,對於比較稀疏的圖,用 Kruskal。Kruskal是找邊的過程,
POJ 1258 : 最小生成樹(Prim)
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your hel
POJ-1258-Agri-Net
Time Limit: 1000MSMemory Limit: 10000KTotal Submissions: 56603Accepted: 23473DescriptionFarmer John has been elected mayor of his town! One of his campai
POJ 1258 Agri-Net 最小生成樹
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the ar
POJ 1258 Agri-Net [最小生成樹] 《挑戰程式設計競賽》2.5
給定各個村子之間的距離, 求最小生成樹 題解: 按題目給的輸入資料來說Prim可能更合適。但我更熟悉Kruskal, 所以強行用Kruskal。 程式碼: #includ
POJ(1258):Agri-Net(最小生成樹)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 68523 Accepted: 28406 Description Farmer John has been elect
poj 1258 Agri-Net 最小生成樹模板
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; #d
[ACM] poj 1258 Agri-Net (最小生成樹)
call pack 地圖 rest width none minimum logic 最小值 版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.ne
POJ 題目1258 Agri-Net(最小生成樹)
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42310 Accepted: 17287 Description Farmer John has been elected