“——————” 目前更新到三百六十四,正在写三百六十五。 —————— #include"iostream" #include"vector" #include"stack" #include"fstream" usingnamespacestd; std::vector<vector<int>>weight; std::vector<vector<int>>path; intvertexnum; intedgenum; constintintmax=10000; voidinitialvector(){ weight.resize(vertexnum);//路径权重数组 path.resize(vertexnum);//保存最短路径数组,记录前继 for(inti=0;i<vertexnum;i++){//建立数组 weight[i].resize(vertexnum,intmax);夶风小说 path[i].resize(vertexnum,-1); } } voidgetdata(){//获取数据 ifstreamin("data"); in>>vertexnum>>edgenum; initialvector(); intfrom,to; doublew; while(in>>from>>to>>w){ weight[from][to]=w; path[from][to]=from;//to的前继是from weight[from][from]=0;//自身到自身的权重为0 path[from][from]=from; weight[to][to]=0; path[to][to]=to; } } voidfloyd(){ for(intk=0;k<vertexnum;k++) for(inti=0;i<vertexnum;i++) for(intj=0;j<vertexnum;j++){ if((weight[i][k]>0weight[k][j]weight[i][k]<intmaxweight[k][j]<intmax)(weight[i][k]+weight[k][j]<weight[i][j])){//前面一部分是防止加法溢出www.ba1zw.com weight[i][j]=weight[i][k]+weight[k][j]; path[i][j]=path[k][j]; } } } voiddisplaypath(intsource,intdest){ stack<int>sh
https://www.ba1zw6.com
记录三百六十八 不小心落水了(1/2),点击下一页继续阅读