博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1144 最短路计数
阅读量:5291 次
发布时间:2019-06-14

本文共 1706 字,大约阅读时间需要 5 分钟。

 如有乱码,请

 

 

题目描述

给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1N。问从顶点11开始,到其他每个点的最短路有几条。

输入格式

第一行包含22个正整数N,MN,M,为图的顶点数与边数。

接下来MM行,每行22个正整数x,yx,y,表示有一条顶点xx连向顶点yy的边,请注意可能有自环与重边。

输出格式

NN行,每行一个非负整数,第ii行输出从顶点11到顶点ii有多少条不同的最短路,由于答案有可能会很大,你只需要输出ans \bmod 100003ansmod100003后的结果即可。如果无法到达顶点ii则输出00。

输入输出样例

输入 #1复制
5 71 21 32 43 42 34 54 5
输出 #1复制
11124

说明/提示

11到55的最短路有44条,分别为22条1-2-4-51245和22条1-3-4-51345(由于4-545的边有22条)。

对于20\%20%的数据,N ≤ 100N100;

对于60\%60%的数据,N ≤ 1000N1000;

对于100\%100%的数据,N<=1000000,M<=2000000N<=1000000,M<=2000000。

 

 

#include
#include
#include
#include
#include
#include
using namespace std;int read(){ int a=0,b=1; char ch=getchar(); while((ch<48||ch>57)&&ch!='-'){ ch=getchar(); } if(ch=='-'){ b=-1; ch=getchar(); } while(ch<48||ch>57){ ch=getchar(); } while(ch>47&&ch<58){ a=a*10+ch-48; ch=getchar(); } return a*b;}int n,m,x,y,tot=0;int head[1000005],to[4000005],nxt[4000005],d[1000005],ans[1000005];bool p[1000005];priority_queue< pair< int,int > > q;void add(int x,int y){ to[++tot]=y; nxt[tot]=head[x]; head[x]=tot;}int main(){ n=read(); m=read(); for(int i=1;i<=m;i++){ x=read(); y=read(); add(x,y); add(y,x); } for(int i=1;i<=n;i++){ d[i]=1e9; p[i]=0; } d[1]=0; ans[1]=1; q.push(make_pair(0,1)); while(q.size()){ x=q.top().second; q.pop(); if(p[x]){continue;} p[x]=1; for(int i=head[x];i;i=nxt[i]){ y=to[i]; if(d[y]>d[x]+1){ d[y]=d[x]+1; ans[y]=ans[x]; q.push(make_pair(-d[y],y)); } else if(d[y]==d[x]+1){ ans[y]+=ans[x]; ans[y]%=100003; } } } for(int i=1;i<=n;i++){ printf("%d\n",ans[i]); } return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11478895.html

你可能感兴趣的文章
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
Servlet3.0新特性
查看>>
java内存溢出怎么解决
查看>>
JS对象以及"继承"
查看>>
Ewebeditor最新漏洞及漏洞大全
查看>>
socket计划编制的原则
查看>>
sqlite3经常使用命令&amp;语法
查看>>
[leetcode] 309. Best Time to Buy and Sell Stock with Cooldown(medium)
查看>>
解决微信授权回调页面域名只能设置一个的问题 [php]
查看>>
数组去重一步到位
查看>>
HDU 4671 Backup Plan 构造
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
MySQL Proxy
查看>>
关于Vue的组件的通用性问题
查看>>
随机颜色值
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>