这个代码既TLE又MLE
查看原帖
这个代码既TLE又MLE
1476569
L0_0楼主2025/2/7 21:39

这个代码提交只有9分(剩下测试点要么TLE要么MLE),但不知道问题出在哪里。

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int N = 4e4+1;
int B, E, P, n, m, x, y;
bool vis[N];
vector<int> e[N];
int d[3][N];
queue<int> q;
void bfs(int s, int id){
    memset(vis, 0, sizeof vis);
	d[id][s] = 0;
	q.push(s);
	while(!q.empty()){
		int u = q.front();
		q.pop();
		vis[u] = 1;
		for(auto v:e[u])
			if (!vis[v]){
				d[id][v] = d[id][u] + 1;
				q.push(v);
			}
	}
}
int main(){
	memset(d, 0x3f, sizeof d);
	cin>>B>>E>>P>>n>>m;
	while(m--){
		cin>>x>>y;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	bfs(1,0);
	bfs(2,1);
	bfs(n,2);
	int ans = 2147483647;
	for (int i=1;i<=n;i++){
		ans = min(ans, B*d[0][i] + E*d[1][i] + P*d[2][i]);
	}
	cout<<ans;
}
2025/2/7 21:39
加载中...