bzoj 1083 繁忙的都市

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1083

题解:

  在bzoj里能遇到如此如此水的题真是不容易……

  乍一看好像有点吓人,其实是一道Kruskal模板题……

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 #define MAXN 1010
 5 int n,m,cnt,fa[MAXN],ans;
 6 struct edge
 7 {
 8     int u,v,val;
 9 }e[MAXN*100];
10 void add(int x,int y,int z)
11 {
12     e[++cnt]={x,y,z};
13 }
14 bool cmp(edge a,edge b)
15 {
16     return a.val<b.val?true:false;
17 }
18 int getfa(int x)
19 {
20     return fa[x]=fa[x]==x?x:getfa(fa[x]);
21 }
22 inline int max(int x,int y)
23 {
24     return x>y?x:y;
25 }
26 int main()
27 {
28     scanf("%d%d",&n,&m);
29     int x,y,z;
30     for(int i=1;i<=m;i++)
31     {
32         scanf("%d%d%d",&x,&y,&z);
33         add(x,y,z);
34         add(y,x,z);
35     }
36     m=cnt;
37     cnt=1;
38     sort(e,e+m,cmp);
39     for(int i=1;i<=n;i++)fa[i]=i;
40     for(int i=1;i<=m;i++)
41     {
42         x=getfa(e[i].u);
43         y=getfa(e[i].v);
44         if(x!=y)
45         {
46             fa[y]=x;
47             cnt++;
48             ans=max(ans,e[i].val);
49             if(cnt==n)break;
50         }
51     }
52     printf("%d %d",n-1,ans);
53     return 0;
54 }
时间: 2024-10-29 10:47:54

bzoj 1083 繁忙的都市的相关文章

BZOJ 1083: [SCOI2005]繁忙的都市(MST)

裸的最小生成树..直接跑就行了 ---------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<vector> #define rep(i,n) for(int i=0;i<n;i++) #define addEdge(u,v,w) MST.edges.push_back((KRUSKAL::Ed

BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】

1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2925  Solved: 1927[Submit][Status][Discuss] Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道 路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连 接.这些道路是双向的,且把所有的交叉路口直接或

BZOJ 1083:[SCOI2005]繁忙的都市(最小生成树)

1083: [SCOI2005]繁忙的都市 Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接.这些道路是双向的,且把所有的交叉路口直接或间接的连接起来了.每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行改造.但是市政府的资金有限,市长希望进行改造的道路越少越好,于是他提出下面的要求: 1. 改造的那些道路能够把

1083: [SCOI2005]繁忙的都市

---恢复内容开始--- 1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1611  Solved: 1040[Submit][Status][Discuss] Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接.这些道路是双向的,且

BZOJ 1083 题解

1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2431  Solved: 1596[Submit][Status][Discuss] Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接.这些道路是双向的,且把所有的交叉路口直接或间接

[SCOI2005][BZOJ1083] 繁忙的都市

1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1534  Solved: 994[Submit][Status][Discuss] Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接.这些道路是双向的,且把所有的交叉路口直接或间接的

bzoj1083: [SCOI2005]繁忙的都市(最小生成树)

1083: [SCOI2005]繁忙的都市 题目:传送门 题解: 一道大水题: 第一问明显输出n-1 第二问最小生成树 秒切 代码: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<cmath> 5 #include<algorithm> 6 using namespace std; 7 struct node 8 { 9 int x,y,c; 10 }a

vijos P1190繁忙的都市(Kruskal)(最小生成树)

P1190  繁忙的都市 城市C是一个非常繁忙的大都市,城市 中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之 间最多有一条道路相连接.这些道路是双向的,且把所有的交叉路口直接或间接的连接起来了.每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行 改造.但是市政府的资金有限,市长希望进行改造的道路越少越好,于是他提出下面的要求: 1.改造的那些道路能够把所有的交叉路口直接或间接的连通起来.

BZOJ 1083: [SCOI2005]繁忙的都市 裸的最小生成树

题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1083 代码: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn = 333; const int maxm = maxn*maxn; struct Edge { int u, v, w; bool operator < (