救人一命,胜造七级浮屠QAQ
查看原帖
救人一命,胜造七级浮屠QAQ
1388846
f7168172楼主2025/7/3 19:25

实在改不了了,只过一个点QAQ

#include<bits/stdc++.h>
using namespace std;
struct node
{
	int y;
	int v;
};
bool operator<(node n1,node n2)
{
	return n1.v<n2.v;
}
priority_queue<node> q;
vector <node> tu[10005];
int vis[10005],dis[10005];
int main()
{
	memset(dis,0x3f,sizeof(dis));
	int n,m,s,xx;
	node a;
	cin>>n>>m>>s;
	for(int i=1;i<=m;i++)
	{
		cin>>xx>>a.y>>a.v;
		tu[xx].push_back({a});
	}
	q.push({s,0});dis[s]=0;
	while(!q.empty())
	{
		node tem=q.top();
		q.pop();
		int u=tem.y;
		if(vis[u]) continue;
		vis[u]=1;
		for(int i=0;i<tu[u].size();i++)
		{
			int e=tu[u][i].y;
			if(dis[e]>dis[u]+tu[u][i].v)
			{
				dis[e]=dis[u]+tu[u][i].v;
				q.push({e,dis[e]});
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		if(vis[i])
			cout<<dis[i]<<" ";
		else cout<<"2147483647";
	}
}
2025/7/3 19:25
加载中...