小杉坐在教室裡,透過口袋一樣的窗戶看口袋一樣的天空。
有很多雲飄在那裡,看起來很漂亮,小杉想摘下那樣美的幾朵雲,做成棉花糖。
給你雲朵的個數n,再給你m個關係,表示哪些雲朵可以連在一起。
現在小杉要把所有雲朵連成k個棉花糖,乙個棉花糖最少要用掉一朵雲,小杉想知道他怎麼連,花費的代價最小。
輸入格式:
每組測試資料的
第一行有三個數n,m,k(1<=n<=1000,1<=m<=10000,1<=k<=10)
接下來m個數每行三個數x,y,l,表示x雲和y雲可以通過l的代價連在一起。(1<=x,y<=n,0<=l<10000)
30%的資料n<=100,m<=1000
輸出格式:
對每組資料輸出一行,僅有乙個整數,表示最小的代價。
如果怎麼連都連不出k個棉花糖,請輸出'no answer'。
輸入樣例#1:
3 1 2輸出樣例#1:1 2 1
1廈門一中yms原創
————————————————--我是分割線————————————————————
1/*2view codeproblem:
3oj:
4user:s.b.s.
5time:
6memory:
7length:8*/
9 #include10 #include11 #include12 #include13 #include14 #include15 #include16 #include17 #include18 #include19 #include20 #include21 #include22 #include23 #include24 #include25
#define maxn 1001
26#define f(i,j,k) for(int i=j;i<=k;i++)
27#define rep(i,j,k) for(int i=j;i28
#define m(a,b) memset(a,b,sizeof(a))
29#define ff(i,j,k) for(int i=j;i>=k;i--)
30#define inf 0x3f3f3f3f
31#define maxm 10001
32#define mod 998244353
33//
#define local
34using
namespace
std;
35 inline int
read()
38while(ch>='
0'&&ch<='9')
39return x*f;40}
41 inline void
out(int
n)43
if(n>=10) out(n/10
);44 putchar((n%10)+'0'
);45
return;46
}47intn,m,k;
48int
tot,ans,cnt;
49struct
edge
50e[maxm];
55int
fa[maxn],rank[maxn];
56 inline void addedge(int u,int v,int
w)57
64bool cmp(edge a,edge b)
65 inline void init()
66 inline int find(int u)
67 inline void union(int a,int
b)6876}
77int
d[maxm],cur;
78 inline void
kruscal()
7988
if(cnt==(n-k)) break;89
}90}91
intmain()
92103
kruscal();
104 cout
105return0;
106 }
洛谷P1195 口袋的天空
小杉坐在教室裡,透過口袋一樣的窗戶看口袋一樣的天空。有很多雲飄在那裡,看起來很漂亮,小杉想摘下那樣美的幾朵雲,做成棉花糖。給你雲朵的個數n,再給你m個關係,表示哪些雲朵可以連在一起。現在小杉要把所有雲朵連成k個棉花糖,乙個棉花糖最少要用掉一朵雲,小杉想知道他怎麼連,花費的代價最小。輸入格式 每組測試...
洛谷P1195 口袋的天空
小杉坐在教室裡,透過口袋一樣的窗戶看口袋一樣的天空。有很多雲飄在那裡,看起來很漂亮,小杉想摘下那樣美的幾朵雲,做成棉花糖。給你雲朵的個數 n 再給你 m 個關係,表示哪些雲朵可以連在一起。現在小杉要把所有雲朵連成 k 個棉花糖,乙個棉花糖最少要用掉一朵雲,小杉想知道他怎麼連,花費的代價最小。輸入格式...
洛谷P1195 口袋的天空
題目背景 小杉坐在教室裡,透過口袋一樣的窗戶看口袋一樣的天空。有很多雲飄在那裡,看起來很漂亮,小杉想摘下那樣美的幾朵雲,做成棉花糖。題目描述 給你雲朵的個數n,再給你m個關係,表示哪些雲朵可以連在一起。現在小杉要把所有雲朵連成k個棉花糖,乙個棉花糖最少要用掉一朵雲,小杉想知道他怎麼連,花費的代價最小...