#P1014. 【入门】片区划分

    ID: 1537 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数据结构并查集贪心图论最小生成树Kruskal最小生成森林结构体

【入门】片区划分

题目描述

A 市有 nn 个村庄(村庄编号为 1n1\sim n),现准备将 nn 个村庄划分为 kk 个区(一个区中要有至少 11 个村庄),同一个区中的村庄要求有道路可以互相到达(不一定要直达,比如:A 村要去 C 村,可以先去 B 村,再去 C 村)。

为了节约成本,在划分之前,相关规划部门调研了村庄之间修路的成本,本次调研,共调研到了 mm 条道路的建设成本。

假设所有村庄之间目前没有任何道路,如果要将 nn 个村庄划分为 kk 个区,请求出最少的修路成本?

输入格式

第一行有三个数 n,m,kn,m,k

接下来 mm 行每行三个数 x,y,lx,y,l,表示编号为 xx 村到编号为 yy 村修路的费用。

测试数据保证 xx 村到 yy 村的道路只有 11 条。

输出格式

输出一个整数,代表最少的修路成本。

如果按照当前的调研数据,无法将 nn 个村庄划分为 kk 个区,请输出 No Answer

样例

3 1 2
1 2 1
1

提示

样例解释

11 号村到 22 号村修路成本为 11

样例要求将 33 个村划分为 22 个区,只需要修 11 条路就可以将 22 个村合并为 11 个区,加上剩余的 11 个村,形成了 22 个区。

因此,样例中只需要在 11 号村和 22 号村之间修路,就可以实现划分 22 个区的目标。

数据范围

1n10001\le n\le 1000

1m100001\le m\le 10000

1k101\le k\le 10

1x,yn1\le x,y\le n

0l<100000\le l<10000

来源

并查集 图论