#include #include #include #include #include #include #include using namespace std; const int N=5005; struct map{ int x,y,w; }a[N]; int T,n,m,x,y,w,k,fir[N],ne[N],ans,d[N]; long long f[N]; bool o[N]; queue q; //struct data{ // int x; // //Node(int a = 0, int b = 0):x(a), y(b){}; // bool operator<(const data &a, const data &b) // { // if (f[a.x]!=f[b.x]) return f[a.x]f[x]+a[i].w||(f[y]==f[x]+a[i].w&&d[y]>w)) { f[y]=f[x]+a[i].w; d[y]=w; if (!o[y]) { o[y]=1; q.push(y); } } } } for (int i=1;i<=n;i++) if (f[i]!=f[0]) ans+=d[i]; } int main() { #ifdef WXY_Z freopen("1.in","r",stdin); #endif cin>>T; while (T--) { k=ans=0; memset(fir,0,sizeof(fir)); cin>>n>>m; for (int i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&w); add(x,y,w); add(y,x,w); } for (int i=1;i<=n;i++) work(i); cout<