AcWing 1134. 最短路计数
2024-09-07 21:36:35
给出一个n个顶m 条边的无向无权图,顶点编号为 1 到 n.N.
问从顶点 1开始,到其他每个点的最短路有几条。
#include<bits/stdc++.h>
#define N 1000000
#define MOD 100003
using namespace std;
int head[N],net[N],to[N];;
int a[N],d[N],cnt[N];
int n,m,cut;
priority_queue<pair<int ,int > > dl;
void add(int from,int t){net[++cut]=head[from];to[cut]=t;head[from]=cut;}
void dij(int x)
{
memset(d,0x3f3f3f3f,sizeof d);
dl.push(make_pair(0,x));
a[x]=1,d[x]=0,cnt[x]=1;
while(dl.size())
{
x=dl.top().second;dl.pop();
for(int i=head[x];i;i=net[i])
{
int y=to[i];
if(d[y]==d[x]+1){cnt[y]+=cnt[x];cnt[y]%=MOD;}
if(d[y]>d[x]+1){d[y]=d[x]+1;cnt[y]=cnt[x];dl.push(make_pair(-d[y],y));} }
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
add(x,y);add(y,x);
}
dij(1);
for(int i=1;i<=n;i++)
printf("%d\n",cnt[i]);
return 0;
}
最新文章
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
- mybatis,sql 批量更新
- NRF51822之ADC(1)
- 黑马程序员——JAVA基础之File类,递归,打印流,合并切割流
- Unity烂笔头1-自定义INSPECTOR属性窗口节点项
- 关于json 与 Request Header 的Content-Type 一些关系。
- Spring对Hibernate的session生效期(事物提交管理)介绍
- SQL Server小技巧【1】
- CentOS 安装BitTorrent Sync详细步骤
- bootstrap 分页样式代码
- Hibernate4.x之映射关系--多对多
- 【开发】Form Validate 表单验证 扩展应用
- zoj 3787 Access System
- Javascript兼容收集
- css 定位属性position的使用方法实例-----一个层叠窗口
- MySQL复制之理论篇
- Shiro学习之身份验证
- 内存(RAM或ROM)和FLASH存储的真正区别总结
- python基础(8)-装饰器函数&;进阶
- Xilinx SDK编译Microblaze时出错