题意:两点间的最短距离,并输出路径(按字典序排列),如何理解字典序,如:1>4>5>6的值等于1>2>5>6的值而且都为最短路径,
此时必须输出:1>2>5>6
解法:floyd
ac代码:
View Code
#includeusing namespace std;const int INT=0x7fffff;const int M=1000+99;int map[M][M];//存地图int d[M];//存每一个点的税金int path[M][M];//记录点i->j经过的点int n;void floyd(){ int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) path[i][j]=j; for(k=1;k<=n;k++) { for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(map[i][k]+map[k][j]+d[k]