Three levels of violence have been wrong for a long time ...
It is a tragedy to think of the non-direction graph as a graph.
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace STD;Const intn= $+5;Const intinf=100000;intG[n][n],n,d[n][n];voidFloyd () {intI,j,k; for(i=0; i<n; i++) for(j=0; j<n; J + +) {if(I==J) d[i][j]=0;Else if(g[i][j]==0) D[i][j]=inf;ElseD[I][J]=G[I][J];//printf ("%d%d:%d\n", I,j,d[i][j]);} for(k=0; k<n; k++) for(i=0; i<n; i++) for(j=0; j<n; J + +) {if(D[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]+d[k][j];//printf ("")}}intMain () {intM,a,b,x,s,t,i,j; while(~scanf("%d%d", &n,&m)) {memset(g,0,sizeof(g)); for(i=0; i<m; i++) {scanf("%d%d%d", &a,&b,&x);if(g[a][b]==0) G[b][a]=g[a][b]=x;Else if(X<g[a][b]) g[b][a]=g[a][b]=x; }scanf("%d%d", &s,&t); Floyd ();if(D[s][t]<inf)printf("%d\n", D[s][t]);Else printf(" -1\n"); }return 0;}
HDU 1874 unblocked Works continued (Floyd)