社区讨论
警告
P4779【模板】单源最短路径(标准版)参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mhjrbxp7
- 此快照首次捕获于
- 2025/11/04 07:14 4 个月前
- 此快照最后确认于
- 2025/11/04 07:14 4 个月前
不要用链式前向星!
不要用链式前向星!!
不要用链式前向星!!!
献上TLE代码
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
const int inf=2147483647;
int n,m,s,cnt;
int dis[500010],h[500010],to[500010],nxt[500010],val[500010];
bool vis[500010];
void add(int a,int b,int c){
to[++cnt]=b;
val[cnt]=c;
nxt[cnt]=h[a];
h[a]=cnt;
}
void dijkstra(){
for(int i=1;i<=n;i++){
dis[i]=inf;
}
dis[s]=0;
dis[0]=inf;
while(true){
int u=0;
for(int i=1;i<=n;i++){
if(!vis[i]&&dis[u]>dis[i]){
u=i;
}
}
if(u==0)break;
vis[u]=1;
for(int i=h[u];i;i=nxt[i]){
if(dis[to[i]]>dis[u]+val[i]){
dis[to[i]]=dis[u]+val[i];
}
}
}
}
signed main(){
cin>>n>>m>>s;
for(int i=1,u,v,w;i<=m;i++){
cin>>u>>v>>w;
add(u,v,w);
}
dijkstra();
for(int i=1;i<=n;i++)cout<<dis[i]<<" ";
return 0;
}
不要用链式前向星!
不要用链式前向星!!
不要用链式前向星!!!
回复
共 6 条回复,欢迎继续交流。
正在加载回复...