题目连接:点击打开链接
解法:利用kruskal算法 把图划分成森林, 同一点有相同最小的权值到别的点, 通过determinant计算树的课数。
总结:模板 + 自己不太懂 = 记录 + 重新学
代码君:
#include <stdio.h>
#include <iostream>
#include <vector>
#define LL long long
using namespace std;
const int MAX = 105;
const int MAXE = 1005;
struct node
{
int set[MAX];
void init(int n)
{
for (int i = 0; i <= n; i++)
set[i] = i;
}
int find(int x)
{
if (set[x] != x)
set[x] = find(set[x]);
return set[x];
}
int Union(