這個題目就是最小生成樹,很簡單的乙個題目,就是需要判斷每個結點是否都在樹上,然後判斷一下就可以,板子題目
現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。
輸入資料報括城鎮數目正整數
n(≤)和候選道路數目
m(≤);隨後的
m行對應
m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。為簡單起見,城鎮從1到
n編號。
輸出村村通需要的最低成本。如果輸入資料不足以保證暢通,則輸出−,表示需要建設更多公路。
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 4000 + 10;
int dir[4][2] = ,,,};
struct edge
} edge[maxn];
int par[maxn];
int find(int x)
bool cmp(edge a,edge b)
int main()
for(int i = 0; i < n; i++)
sort(edge,edge+n,cmp);
int sum = 0;
for(int i = 0; i < n; i++)
}int flag = 0;
int ans = 0;
for(int i = 1; i <= m; i++)
if(flag > 1)
}if(ans)
printf("-1\n");
else
printf("%d\n",sum);
return 0;
}
PTA 公路村村通 (30 分)
7 3 公路村村通 30 分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入格式 輸入資料報括城鎮數目正整數n 1000 和候選道路數目m 3n 隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的...
5 10 公路村村通 30分
5 10 公路村村通 30分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入資料報括城鎮數目正整數n n le 1000 1 000 和候選道路數目m m le 3n 3 n 隨後的m m行對應m m條道路,每行給出3個正整...
5 9 公路村村通 30分
5 9 公路村村通 30分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入格式 輸入資料報括城鎮數目正整數nn le 1000 1000 和候選道路數目mm le 3n 3n 隨後的mm行對應mm條道路,每行給出3個正整數,...