返回

夏目友人帐之鲲鸣

首页
关灯
护眼
字体:
记录三百六十八 不小心落水了(1/2)
   存书签 书架管理 返回目录
    “——————”
  目前更新到三百六十四,正在写三百六十五。
  ——————
  #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),点击下一页继续阅读
上一章 目录 下一页