样例过了,但零分。
#include<bits/stdc++.h>
using namespace std;
struct node{
int v,w;
};
vector<node> a[1001];
bool used[1010];
long long dis[1010];
int n,m;
void djstl(int s){
for(int i=1;i<n;i++){
int u=0;
for(int j=1;j<=n;j++){
if(!used[j]&&dis[j]<dis[u]) u=j;
}
used[u]=true;
for(auto it : a[u]){
int v=it.v,w=it.w;
if(dis[v]>dis[u]+w) dis[v]=dis[u]+w;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y,z;
cin>>x>>y>>z;
a[x].push_back({y,z});
}
long long ans=0;
for(int k=1;k<=n;k++){
memset(used,false,sizeof(used));
for(int i=0;i<=n;i++) dis[i]=1e9;
dis[k]=0;
djstl(k);
if(k!=1) ans+=dis[1];
else for(int i=2;i<=5;i++) ans+=dis[i];
}
cout<<ans;
return 0;
}