题目大意:

一个图,从一个点到另个点,权值会乘一个数,问是否存在正权环。

然后发现一个问题,用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的队列优化方法。