P1396 营救 60分求调
查看原帖
P1396 营救 60分求调
1054021
114_Hzh_AK_NOIP_514楼主2024/8/8 18:46
#include <bits/stdc++.h>
using namespace std;
struct node
{
	int s,e,v;
}u;
vector <node> mapp;
int s,t,n,m;
int dis[10005];
int cnt[10005];
void ford(int s)
{
	memset(dis,0x3f,sizeof dis);
	dis[s]=0;
	for(int i=1;i<=n;i++)
	{
		cnt[i]=INT_MIN;
	}
	for(int i=1;i<n;i++)
	{
		bool flag=0;
		for(int j=0;j<mapp.size();j++)
		{
			int ns=mapp[j].s;
			int ne=mapp[j].e;
			int nv=mapp[j].v;
			if(dis[ns]+nv<dis[ne])
			{
				dis[ne]=dis[ns]+nv;
				cnt[ne]=max(nv,cnt[ns]);
				flag=1;
			}
		} 
		if(flag==0) return;
	}
}
int main()
{
	cin >> n >> m >> s >> t;
	while(m--)
	{
		int a,b,c;
		cin >> a >> b >> c;
		u.s=a;
		u.e=b;
		u.v=c;
		mapp.push_back(u);
		u.s=b;
		u.e=a;
		u.v=c;
		mapp.push_back(u);
	}
	ford(s);
	cout << cnt[t];
	return 0;
}

2024/8/8 18:46
加载中...