#include#include #include #define M 105using namespace std;int n,m;long long d[M][M],sum[M][M];double ans[M];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) d[i][j]=10000000001; for(int i=1;i<=m;i++) { int a1,a2; scanf("%d%d",&a1,&a2); scanf("%lld",&d[a1][a2]); d[a2][a1]=d[a1][a2]; sum[a1][a2]=sum[a2][a1]=1; } for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(d[i][k]+d[k][j]
弗洛伊德求出两点之间的的最短距离以及有多少种方案,在用弗洛伊德判断每个点在那些最短路上。