楼主发一下评测链接?
by Karrγ5307 @ 2020-03-22 16:26:48
您用的是什么算法?
Prim吗?
by WaltVBAlston @ 2020-03-22 16:34:09
@[I_is_a_english_men](/user/327926) 只A了#5,#7,#11
by lzqy_ @ 2020-03-22 16:36:15
@[Andy_2006](/user/261262) 好像是$Kruskal$ QWQ
by lzqy_ @ 2020-03-22 16:37:14
试试prim
by Karrγ5307 @ 2020-03-22 16:38:12
是答案错误诶
~~(而且蒟蒻不是很熟悉Prim)~~
by lzqy_ @ 2020-03-22 16:39:57
额我用的也是Kruskal
给您看看?
抱歉没时间帮忙改
```
#include<iostream>
#include<algorithm>
using namespace std;
int k=1;
int p[501];
struct node
{
int u,v,w;
};
int sum=0;
int n,b;
node a[250001];
int m=0;
bool cmp(node c,node d)
{
return c.w<d.w;
}
int find(int x)
{
if(x==p[x])
{
return p[x];
}
else
{
p[x]=find(p[x]);
return p[x];
}
}
int main()
{
cin>>b>>n;
for(int i=1;i<=n;i++)
{
p[i]=i;
for(int j=1;j<=n;j++)
{
int w;
cin>>w;
m++;
if(w==0||w>=b)
{
a[m].u=i;
a[m].v=j;
a[m].w=b;
}
else
{
a[m].u=i;
a[m].v=j;
a[m].w=w;
}
}
}
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++)
{
if(k==n)
{
break;
}
int x=find(a[i].u);
int y=find(a[i].v);
if(x!=y)
{
p[x]=y;
sum+=a[i].w;
k++;
}
}
cout<<sum+b;
return 0;
}
```
您可以逐条复制粘贴来进行替换试试
by WaltVBAlston @ 2020-03-22 16:40:37
谢谢谢谢%%%Orz
by lzqy_ @ 2020-03-22 16:41:31
@[栾竹清影](/user/288716) 蒟蒻怀疑是变量名重复的问题....lz变量名可以试试用英文单词(或者拼音)哦...
by LeavingZ @ 2020-03-22 16:42:26
已AC~感谢大佬(^▽^)
by lzqy_ @ 2020-03-22 16:45:43