社区讨论

朴素爆搜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 条回复,欢迎继续交流。

正在加载回复...