问1~n的最短路有几个
#include <iostream> #include <cstring> #include <queue> using namespace std ; const int N=1e6+2,M=2e6+2; const int inf=0x3f3f3f3f,mod=100003; int all,nxt[M],go[M],hd[N]; int dis[N],vis[N],n,m; int cnt[N]; void add(int x,int y){ go[++all]=y; nxt[all]=hd[x],hd[x]=all; } void spfa(int v0){ int i,x,y; queue<int> q; memset(vis,0,sizeof vis); for(i=1;i<=n;i++) dis[i]=inf; dis[v0]=0; cnt[v0]=1; q.push(v0); vis[v0]=1; while(!q.empty()){ x=q.front(),q.pop(); vis[x]=0; for(i=hd[x];i;i=nxt[i]){ y=go[i]; if(dis[y]>dis[x]+1){ dis[y]=dis[x]+1; cnt[y]=cnt[x]; if(!vis[y]) vis[y]=1,q.push(y); } else if(dis[y]==dis[x]+1){ cnt[y]+=cnt[x];cnt[y]%=mod; } } } } signed main(){ int i,x,y; scanf("%d%d",&n,&m); for(i=1;i<=m;i++) scanf("%d%d",&x,&y),add(x,y),add(y,x); spfa(1); for(i=1;i<=n;i++) cout<<cnt[i]<<endl; }
分类:
图论
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战