为什么WA#9哇
查看原帖
为什么WA#9哇
988040
qtanglani楼主2023/6/13 17:05
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
struct node
{
	int v,w;
};
vector<node> g[1000000];
queue<int> q;
int cnt[10000000];
int dis[10000000],vis[10000000];
int main()
{
	int n,m;
	cin>>n>>m;
	memset(dis,0x3f,sizeof(dis));
	dis[0]=0;
	q.push(0);
	vis[0]=1;
	for(int i=1;i<=m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		g[v].push_back({u,w});
		g[0].push_back({u,0});
		g[0].push_back({v,0});
	}
	while(q.size())
	{
		int u=q.front();
		q.pop();
		vis[u]=0;
		for(auto it:g[u])
		{
			int v=it.v,w=it.w;
			if(dis[v]>dis[u]+w)
			{
				dis[v]=dis[u]+w;
				cnt[v]=cnt[u]+1;
				if(cnt[v]>n)
				{
					cout<<"NO SOLUTION";
					return 0;
				}
				if(!vis[v])
				{
					vis[v]=1;
					q.push(v);
				}
			}
		}
	}
	int minn=0x3f3f3f3f;
	for(int i=1;i<=n;i++)
		if(minn>dis[i])
			minn=dis[i];
	for(int i=1;i<=n;i++)
		cout<<dis[i]-minn<<endl;
}
2023/6/13 17:05
加载中...