题意:也是求最小生成树,不过在n个点当中可以有s个点已经相连。
用krusical做。记录每次加的边数,当连通的边数有n-s便跳出。
#include
#include
#include
#include
#include
using namespace std;
int n,s,f[1010];
struct node
{
int x,y;
double s;
}e[250010];
bool cmp(node s, node v)
{
return s.s>t;
while(t--)
{
int zb[510][2],p=0;
cin>>s>>n;
for (i=1; i<=n; i++)
{
f[i]=i;
scanf("%d%d",&zb[i][0],&zb[i][1]);
}
for (i=1; i
#include
#include
#include
#include
using namespace std;
int n,s,f[1010];
struct node
{
int x,y;
double s;
}e[250010];
bool cmp(node s, node v)
{
return s.s>t;
while(t--)
{
int zb[510][2],p=0;
cin>>s>>n;
for (i=1; i<=n; i++)
{
f[i]=i;
scanf("%d%d",&zb[i][0],&zb[i][1]);
}
for (i=1; i