题目大意:
一个图,从一个点到另个点,权值会乘一个数,问是否存在正权环。
然后发现一个问题,用Bellman-ford的时候,判断是否存在负权回路只需要枚举一次所有的边,看是否还能松弛就可以了!
#include
#include
#include
#include
#define N 1000
using namespace std;
struct bian
{
int s;
int e;
double v;
}a[N*N]={0};
int n,m;
char name[N][N]={0};
double dis[N]={0};
int flag=0;
int is_same(char *x,char *y)
{
int maxx=max(strlen(x),strlen(y));
for(int j=0;j>m;
for(int i=1;i<=m;i++)
{
char s[N];char e[N];
double x;
scanf("%s%lf%s",s,&x,e);
find(s,x,e,i);
}
}
void my_Bellman_Ford()//以1号点为虚拟源点,判断是否存在"正权回路"(大于1)
{
dis[1]=1;
for(int i=1;i>n)
{
flag=0;
cas++;
if(n==0)break;
input();
/*for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cout<
至此,做完了最短路的相关练习,但是有时间要再学一下邻接表储存边和bellman-ford的队列优化方法。