求救?
查看原帖
求救?
572956
wuhaoran2012楼主2023/9/9 11:58

只A了#5,其他都WA了

#import<bits/stdc++.h>
using namespace std;
inline int read (){int x;cin>>x;return x;}
struct node {
	int to,dis;
	bool operator< (const node &x) const {
		return dis < x.dis;
	}
};
int n,m,s;
vector<node> a[(int)1e5+10];
int dis[(int)1e5+10];
bool vis[(int)1e5+10];
int main(){
	cin>>n>>m>>s;
	for(int i=1;i<=m;i++) a[read()].push_back({read(),read()});
	fill(dis+1,dis+n+1,INT_MAX);
	dis[s]=0;
	priority_queue<node>q;
	q.push({s,0});
	while(!q.empty()){
		auto [u,d] = q.top();
		q.pop();
		if(vis[u]) continue;
		vis[u] = true;
		for(auto j: a[u] ){
			auto [to,d] = j;
			if(dis[to] > dis[u] + d) {
				dis[to] = dis[u] +d;
				q.push({to,dis[to]});
			}
		}
	}
	for(int i=1;i<=n;i++) {
		cout<<dis[i]<<" \n"[i==n];
	}
	return 0;
}
2023/9/9 11:58
加载中...