题意:也是求最小生成树,不过在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