Ljh421 @ 2024-02-21 11:36:28
#include <bits/stdc++.h>
using namespace std;
const int N=200005;
int n,m,ans,cani;
int x[N],y[N],z[N],bj[N],can[N][2];
void aaa(int xxx){
if(xxx==1) return;
int minn=10008,mini;
for(int j=1;j<=cani;j++){
if(minn>can[j][2]&&can[j][2]!=0){
minn=can[j][2];
mini=j;
}
}
bj[can[mini][1]]=1;
ans+=can[mini][2];
can[mini][2]=0;
for(int i=1;i<=m;i++){
if(can[mini][1]==x[i]&&bj[can[mini][1]]==0){
can[++cani][1]=y[i];
can[cani][2]=z[i];
}else if(can[mini][1]==y[i]&&bj[can[mini][1]]==0){
can[++cani][1]=x[i];
can[cani][2]=z[i];
}
}
aaa(--xxx);
return;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x[i]>>y[i]>>z[i];
if(x[i]==1){
can[++cani][1]=y[i];
can[cani][2]=z[i];
}else if(y[i]==1){
can[++cani][1]=x[i];
can[cani][2]=z[i];
}
}
bj[1]=1;
aaa(n);
for(int i=1;i<=n;i++){
if(bj[i]==0){
cout<<"orz";
return 0;
}
}
cout<<ans;
return 0;
}
by Ljh421 @ 2024-02-21 11:37:23
我感觉会超时,改成超时的就行了
by xiechengxuan1061862 @ 2024-02-21 11:50:50
其实并没有超时,还不过是WA。 我看了一下,还到不了TLE