用最小生成树中的Kruskal算法解决。
代码如下:
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
const int maxn1e45;
struct E
{int f,t;int wei;
}edge[maxn];
int fa[105];bool cmp(E x, E y)
{return x.wei…
原题链接
很简单,照搬kruskal算法的模板稍微改动一下就可以了
#include<bits/stdc.h>
using namespace std;const int N1005;
const int M10005;
int n,m,k;
int minsum0;
int parent[N];struct Edge
{int x,y,l;
}edge[M];void initial()
{for(int i1;i<…
用的kruskal算法,用到了并查集,算法思路和代码实现过程都很好理解,标准的模板题
#include<bits/stdc.h>
using namespace std;const int N5005;
const int M200005;int n,m;//n个节点,m条无向边
long long int lens0;//最小…
最短网络
题目http://ybt.ssoier.cn:8088/problem_show.php?pid1350
#include<bits/stdc.h>
using namespace std;
const int N110;
int w[N][N];
bool st[N];
int dist[N];
int n,res0;
void prim()
{memset(dist,0x3f,sizeof dist);dist[1]0;//初始化第一个点到自己…