求助!!
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,dis[3001][3001],u,v,w,ans=0;
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
inline void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
signed main(){
n=read(),m=read();
memset(dis,0x3f,sizeof(dis));
while (m--) u=read(),v=read(),w=read(),dis[u][v]=min(dis[u][v],w);
for (int x=1;x<=n;x++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (i!=x&&j!=x)
dis[i][j]=min(dis[i][x]+dis[x][j],dis[i][j]);
for (int i=2;i<=n;i++) ans+=(dis[i][1]+dis[1][i]);
write(ans);
exit(0);
return 0;
}