这个代码比赛可以用吗
  • 板块灌水区
  • 楼主fanxing1124
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/9/9 16:25
  • 上次更新2023/11/2 21:51:39
查看原帖
这个代码比赛可以用吗
778970
fanxing1124楼主2023/9/9 16:25

打了个SPFA,这代码在比赛能用吗

#include<bits/stdc++.h>
#define uf(x,y,z) for(int x=y;x<=z;x++)
#define df(x,y,z) for(int x=y;x>=z;x--)
#define int long long
using namespace std;
int n,m,x,y,z,dis[100010];
queue<int>q;
struct node
{
	int l;
	map<int,int>y;
	map<int,int>t;
}a[100010];
signed main()
{
	cin>>n>>m;
	uf(i,1,m)
	{
		scanf("%lld%lld%lld",&x,&y,&z);
		a[x].l++;
		a[x].y[a[x].l]=y;
		a[x].t[a[x].l]=z;
		a[y].l++;
		a[y].y[a[y].l]=x;
		a[y].t[a[y].l]=z;
	}
	memset(dis,0x3f3f3f3f3f3f3f3f,sizeof(dis));
	dis[1]=0;
	q.push(1);
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		uf(i,1,a[u].l)
		{
			int v=a[u].y[i];
			if(dis[v]>dis[u]+a[u].t[i])
			{
				dis[v]=dis[u]+a[u].t[i];
				q.push(v);
			}
		}
	}
	uf(i,1,n)cout<<dis[i]<<endl;
	return 0;
}
2023/9/9 16:25
加载中...