社区讨论
这个代码既TLE又MLE
P3110[USACO14DEC] Piggy Back S参与者 3已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @m6utehmo
- 此快照首次捕获于
- 2025/02/07 21:41 去年
- 此快照最后确认于
- 2025/11/04 09:47 4 个月前
这个代码提交只有9分(剩下测试点要么TLE要么MLE),但不知道问题出在哪里。
CPP#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;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...