洛谷 1144 最短路计数 bfs
其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移,最后输出cnt即为结果。。
题目中所说的重边和自环啥的没看出来有啥影响。。
#include <cstdio>
#include <cstring>
#include <algorithm> const int maxn = + ;
const int mod = ;
int que[maxn];
bool vis[maxn];
int last[maxn], pre[ * maxn], other[ * maxn];
int dis[maxn], cnt[maxn];
int n, m;
int x, y;
int tot = ;
void bfs(int s) {
memset(dis, , sizeof(dis));
dis[s] = ;
cnt[s] = ;
int h = , t = ;
que[] = s;
while (h < t) {
h = (h + ) % maxn;
int cur = que[h];
for (int p = last[cur]; p; p = pre[p]) {
int q = other[p];
if (dis[q] == ) {
dis[q] = dis[cur] + ;
cnt[q] = cnt[cur];
t = (t + ) % maxn;
que[t] = q;
} else if (dis[q] > dis[cur] + ) {
dis[q] = dis[cur] + ;
cnt[q] = cnt[cur];
t = (t + ) % maxn;
que[t] = q;
} else if (dis[q] == dis[cur] + ) {
cnt[q] = (cnt[q] + cnt[cur]) % mod;
}
}
}
}
void add(int x, int y) {
tot++;
pre[tot] = last[x];
last[x] = tot;
other[tot] = y;
}
int main () {
scanf("%d %d", &n, &m);
for (int i = ; i <= m; i++) {
scanf("%d %d", &x, &y);
add(x, y);
add(y, x);
}
bfs();
for (int i = ; i <= n; i++) {
printf("%d\n", cnt[i]);
} return ;
}
洛谷 1144 最短路计数 bfs的更多相关文章
- 洛谷P1144 最短路计数(SPFA)
To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M ...
- 洛谷P1144 最短路计数 及其引申思考
图论题目练得比较少,发一道spfa的板子题目- 题目:P1144 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: ...
- 洛谷——P1144 最短路计数
P1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶 ...
- 洛谷P1144最短路计数题解
最短路计数 此题还是寻找从1到i点总共有几个最短路且每条边的边长为1,对于这种寻找最短路的个数,我们可以反向搜索,即先用\(SPFA\)预处理出所有点的最短路,然后我们反向记忆化搜索,可以用\(sum ...
- 洛谷 P1144 最短路计数 解题报告
P1144 最短路计数 题目描述 给出一个\(N\)个顶点\(M\)条边的无向无权图,顶点编号为\(1-N\).问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 第一行包含2个正 ...
- 洛谷 [P1608] 最短路计数
最短路计数模版 本题要注意重边的处理 #include <iostream> #include <cstdio> #include <algorithm> #inc ...
- 洛谷 P1144 最短路计数 题解
P1144 最短路计数 题目描述 给出一个\(N\)个顶点\(M\)条边的无向无权图,顶点编号为\(1-N\).问从顶点\(1\)开始,到其他每个点的最短路有几条. 输入格式 第一行包含\(2\)个正 ...
- 洛谷P1144 最短路计数
题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. 接下来M行 ...
- 洛谷 P1144 最短路计数 Label:水
题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. 接下来M行 ...
随机推荐
- 寻找不到iframe元素
一直找不到元素,是因为有两层iframe的 找iFrame元素方法如下 1.iFrame有ID 或者 name的情况//进入id="frame1"的frame中,定位id=&quo ...
- Xamarin Mono For Android、Monotouch 安装
一.Windows下面的安装 1. 安装环境介绍: Win8.1 企业版64位或Win7 64.VS2013 update4 2. 安装jdk 到oracle官方下载jdk-8u45-wi ...
- Python去除多余空格
今天做爬虫时.发现结果中好多多余的空格.然后有强迫症的我当然不会放过 " xyz ".strip() # returns "xyz" " xyz &q ...
- 【POJ 1084】 Square Destroyer
[题目链接] http://poj.org/problem?id=1084 [算法] 迭代加深 [代码] #include <algorithm> #include <bitset& ...
- 杂项-DB:OLAP(联机分析处理)
ylbtech-杂项-DB:OLAP(联机分析处理) 联机分析处理OLAP是一种软件技术,它使分析人员能够迅速.一致.交互地从各个方面观察信息,以达到深入理解数据的目的.它具有FASMI(Fast A ...
- org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的systemPropertiesModeName属性
转自:https://www.cnblogs.com/huqianliang/p/5673701.html 使用PropertyPlaceholderConfigurer类载入外部配置 在Spring ...
- ubantu下NiFi单节点安装部署
第一步,首先下载安装包:http://nifi.apache.org/download.html,博主下载的是1.4.0版本,直接下载的是编译后的文件. 第二步:将压缩包上传到服务器相应目录下,并且解 ...
- 【NOIP2011 Day 2】观光公交
[问题描述] 小城Y市,拥有n个景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4……n号景点.从第 ...
- iOS开发中UIDatePicker控件的使用方法简介
iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time , Count Down Timer四 ...
- JAVA 中for-each循环使用方法
for each循环还是第一次见,“java SE 5.0增加了一种功能很强的循环结构,可以用来一次处理数组中的每个元素(其他类型的元素集合亦可)而不必为指定下标值而分心”. 这种增强的for eac ...