“——————”
目前更新到三百六十四,正在写三百六十五。
——————
#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++){//建立数组m.sxynkj.ċöm
weight[i].resize(vertexnum,intmax);
path[i].resize(vertexnum,-1);
}www.sxynkj.ċöm
}
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])){//前面一部分是防止加法溢出
weight[i][j]=weight[i][k]+weight[k][j];
path[i][j]=path[k][j];
}
}
}
voiddisplaypath(intsource,intdest){
stack<int>sh
壹趣文学为你提供最快的夏目友人帐之鲲鸣更新,记录三百六十八 不小心落水了免费阅读。https://www.sxynkj.com