求助
  • 板块P1396 营救
  • 楼主Pursuewind
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/2/5 12:03
  • 上次更新2023/10/24 01:38:57
查看原帖
求助
664236
Pursuewind楼主2023/2/5 12:03

全部MLE:

#include <bits/stdc++.h>
using namespace std;
const int N = 2e4 + 5;
int n, m, s, t;
struct edge
{
	int to, w;
};
vector <edge> G[N];
bool flag[N];
void addedge(int u, int v, int w)
{
	G[u].push_back({v, w});
	G[v].push_back({u, w});
}
bool cheak(int mid, int now)
{
	if (now == t) return 1;
	for (int i = 0; i < G[now].size(); i ++)
		if (!flag[G[now][i].to])
		{
			if (G[now][i].w > mid) return 0;
			else return cheak(mid, G[now][i].to);
		}
}
int main()
{
	cin >> n >> m >> s >> t;
	while (m --)
	{
		int u, v, w;
		cin >> u >> v >> w;
		addedge(u, v, w);
	}
	flag[s] = 1;
	int l = 0, r = 100005;
	while (l < r)
	{
		int mid = l + r >> 1;
		if (cheak(mid, s)) r = mid;
		else l = mid + 1;
	}
	cout << l;
	return 0;
}
2023/2/5 12:03
加载中...