社区讨论
朴素爆搜A一点TLE五点玄关求调
P4779【模板】单源最短路径(标准版)参与者 8已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mhjusogk
- 此快照首次捕获于
- 2025/11/04 08:51 4 个月前
- 此快照最后确认于
- 2025/11/04 10:31 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
struct node{
int vi,wi;
} p;
vector<node> a[100010];
int sum[100010];
int n,m,s;
void dfs(int step) {
for(int i=0;i<a[step].size();i++) {
if(a[step][i].vi!=s) {
if(sum[a[step][i].vi]==0||sum[a[step][i].vi]>sum[step]+a[step][i].wi) {
// cout<<":"<<step<<" "<<a[step][i].vi<<" "<<sum[a[step][i].vi]<<" "<<sum[step]+a[step][i].wi<<"\n";
sum[a[step][i].vi]=sum[step]+a[step][i].wi;
dfs(a[step][i].vi);
}
}
}
}
int main() {
cin>>n>>m>>s;
while(m--) {
int x,y,z;
cin>>x>>y>>z;
p.vi=y;
p.wi=z;
a[x].push_back(p);
}
dfs(s);
for(int i=1;i<=n;i++) cout<<sum[i]<<" ";
return 0;
}
回复
共 13 条回复,欢迎继续交流。
正在加载回复...