//-----------Bellman_Ford------------
struct Edge
{
int v,u;
int weight;
}edge[M];
int dist[N];

bool Bellman_Ford(int n,int m,int s)
{
int i,j;
bool flag;
for(i=1;i<=n;i++)
dist[i]
=MAXVAL;
dist[s]
=0;

for(i=1;i<n;i++)
{
flag
=false;
for(j=0;j<m;j++)
{
if(dist[edge[j].v]+edge[j].weight<dist[edge[j].u])
dist[edge[j].u]
=dist[edge[j].v]+edge[j].weight,flag=true;
}
if(flag==false) return true;
}
///显然写的是单向的!
for(j=0;j<m;j++)
{
if(dist[edge[j].v]+edge[j].weight<dist[edge[j].u])
return false;
}

return true;
}

写的不对或不好的地方,请大虾多多指教!    ——Never

相关文章:

  • 2021-07-11
  • 2021-08-12
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-19
猜你喜欢
  • 2021-04-12
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
相关资源
相似解决方案