为什么RE了啊啊啊啊
查看原帖
为什么RE了啊啊啊啊
1024631
Howells楼主2025/6/13 22:21
#include<bits/stdc++.h>
#include<cstdio>
using namespace std;
int n, m, s, final[100]={0}, D[100];


struct point{
	int w, v;
	bool operator < (const point& o) const{
		return w < o.w && !final[v];
	}
};


set<point> li[100];


void dfs(int vi){
	set <point>::iterator it;
	if (final[(*(li[vi].begin())).v]) return;
	for (it = li[vi].begin();it != li[vi].end()||!final[(*it).v];++it){
		int ui = (*it).v;
		D[ui] = max(D[ui], D[vi]+(*it).w);
	}
	final[(*(li[vi].begin())).v] = 1;
	return;
}


int main(){
	cin>>n>>m>>s;
	for (int i=1;i<=n;++i){
		D[i] = INT_MAX;
	}
	for (int i=0;i<m;++i){
		int ui, vi, wi;
		cin>>ui>>vi>>wi;
		point a={wi, vi}, b={wi, ui};
		li[ui].insert(a);
		li[vi].insert(b);
	}
	D[s] = 0;
	dfs(s);
	for (int i=1;i<=n;++i){
		cout<<D[i]<<" ";
	}
	return 0;
}

有大佬能救一下吗,一个萌新。。。

2025/6/13 22:21
加载中...