国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【BZOJ 1083】【SCOI 2005】繁忙的都市

2019-11-08 01:33:22
字體:
供稿:網(wǎng)友

Description

  城市C是一個(gè)非常繁忙的大都市,城市中的道路十分的擁擠,于是市長(zhǎng)決定對(duì)其中的道路進(jìn)行改造。城市C的道路是這樣分布的:城市中有n個(gè)交叉路口,有些交叉路口之間有道路相連,兩個(gè)交叉路口之間最多有一條道路相連接。這些道路是雙向的,且把所有的交叉路口直接或間接的連接起來了。每條道路都有一個(gè)分值,分值越小表示這個(gè)道路越繁忙,越需要進(jìn)行改造。但是市政府的資金有限,市長(zhǎng)希望進(jìn)行改造的道路越少越好,于是他提出下面的要求: 1. 改造的那些道路能夠把所有的交叉路口直接或間接的連通起來。 2. 在滿足要求1的情況下,改造的道路盡量少。 3. 在滿足要求1、2的情況下,改造的那些道路中分值最大的道路分值盡量小。任務(wù):作為市規(guī)劃局的你,應(yīng)當(dāng)作出最佳的決策,選擇那些道路應(yīng)當(dāng)被修建。

Input

  第一行有兩個(gè)整數(shù)n,m表示城市有n個(gè)交叉路口,m條道路。接下來m行是對(duì)每條道路的描述,u, v, c表示交叉路口u和v之間有道路相連,分值為c。(1≤n≤300,1≤c≤10000)

Output

  兩個(gè)整數(shù)s, max,表示你選出了幾條道路,分值最大的那條道路的分值是多少。

Sample Input

4 5 1 2 3 1 4 5 2 4 7 2 3 6 3 4 8

Sample Output

3 6

題解

這題一看就是最下生成樹啊。 而且畢竟分值越小越好,那么兩個(gè)點(diǎn)之間的最短路一定在最小生成樹上,不然就有違定義,那么用一次克魯斯卡爾算法,同時(shí)記錄最大值即可.

讓代碼來說明一切。

代碼

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{ int u,v,c;}e[100010];bool cmp(node a,node b){return a.c < b.c;}int f[310],n,m,ans;int find(int x){return f[x] == x ? x : f[x] = find(f[x]);}int main(){ scanf("%d%d",&n,&m); for(int i = 1;i <= m;i++) scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].c); sort(e + 1,e + m + 1,cmp); for(int i = 1;i <= n;i++) f[i] = i; for(int i = 1;i <= m;i++) { int fa = find(e[i].u),fb = find(e[i].v); if(fa != fb) { f[fa] = fb; ans = e[i].c; } }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 思南县| 拉孜县| 赤城县| 文成县| 伊川县| 宜丰县| 米林县| 遂平县| 荥经县| 思南县| 宝鸡市| 正镶白旗| 麻栗坡县| 修文县| 将乐县| 宜兰县| 山丹县| 肥东县| 永丰县| 遵化市| 额尔古纳市| 集安市| 舒城县| 花莲市| 霍州市| 江陵县| 栾川县| 通化市| 伊宁市| 礼泉县| 齐河县| 盖州市| 应用必备| 六枝特区| 尖扎县| 商都县| 阿坝| 安龙县| 开封市| 胶州市| 永川市|