本蒟蒻模板题都打炸了
查看原帖
本蒟蒻模板题都打炸了
37885
冷笑叹秋萧楼主2021/5/24 19:09

有没有巨佬来帮我看看哪里有问题?

#include<cstdio>
#define R register int
#define inf 0x3f3f3f3f
#define M 5005
#define min(a,b) (((a)<(b))?(a):(b))
using namespace std;
struct G{int u,v,w;}e[M];
int dist[M],n,m;
int main()
{
	scanf("%d%d",&n,&m);dist[1]=0;
	for (R i=1;i<=m;++i)
	{
		int c,c1,y;
		scanf("%d%d%d",&c,&c1,&y);e[i].u=c;e[i].v=c1;e[i].w=y;
	}
	for (R i=2;i<=n;++i)
		dist[i]=inf;
	for (R i=1;i<n;++i)
		for (R j=1;j<=m;++j)
			dist[e[j].v]=min(dist[e[j].u]+e[j].w,dist[e[j].v]);
	for (R i=1;i<=m;++i)
		if (dist[e[i].v]>dist[e[i].u]+e[i].w) {printf("NO\n");return 0;}
	for (R i=1;i<=n;++i)
		printf("%d ",dist[i]);
	printf("\n");
}


2021/5/24 19:09
加载中...