社区讨论
p4779求助
灌水区参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lo276gl8
- 此快照首次捕获于
- 2023/10/23 09:06 2 年前
- 此快照最后确认于
- 2023/11/03 09:21 2 年前
DALAO求助
下面是代码
CPP#include<bits/stdc++.h>
using namespace std;
long long dis[100010],cnt,head[100010],n,m,x,y,z,s,b[100010],u,v;
struct node
{
long long to,w,next;
}edge[200010];
void add(int x,int y,int z)
{
cnt++;
edge[cnt].to=y;
edge[cnt].w=z;
edge[cnt].next=head[x];
head[x]=cnt;
}
int main()
{
cin>>n>>m>>s;
for(int i=1;i<=m;i++)
{
scanf("%lld%lld%lld",&x,&y,&z);
add(x,y,z);
}
queue<int> q;
memset(dis,0x3f3f3f3f3f3f3f3f,sizeof(dis));
dis[s]=0;
q.push(s);b[s]=1;
while(!q.empty())
{
u=q.front();
q.pop();
b[u]=0;
for(int i=head[u];i;i=edge[i].next)
{
v=edge[i].to;
if(dis[v]>dis[u]+edge[i].w)
{
dis[v]=dis[u]+edge[i].w;
if(b[v]==0)
{
q.push(v);
b[v]=1;
}
}
}
}
for(int i=1;i<=n;i++)
if(s==i) cout<<0<<" ";
else cout<<dis[i]<<" ";
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...