首页 > TAG信息列表 > P1144

P1144 最短路计数

题目链接 https://www.luogu.com.cn/problem/P1144 第一道绿题。。 本是想找几个最短路径做一下,然后去看了看lqs的博客,发现有这么个题(https://www.cnblogs.com/LQS-blog/p/16206505.html),他说:“当然,这类题也可以用dijkstra来处理,不过既然有了最优选择,何必去选择多余的呢,是吧”,欸我

【洛谷】P1144 最短路计数

因为无向无权,实际上最短路径长度=该点在bfs搜索树的深度 dfs似乎没法解决自环,会一直不断循环 当然用Dijkstra做也可以 #include <bits/stdc++.h> using namespace std; struct d_node{ int v,w; friend bool operator < (const d_node &d1,const d_node &d2){

P1144 最短路计数

题目: https://www.luogu.com.cn/problem/P1144 用bfs来求最短路,用dep数组来表示深度,用c数组来表示从1到达当前状态的数量 如果当前的dep[w]==dep[te]+1的话就把到达te的次数加给w 代码: #include<stdio.h> #include<algorithm> #include<vector> #include<queue> using namespace

洛谷 P1144 最短路计数

传送门:https://www.luogu.org/problemnew/show/P1144   这虽然是一道普及+的题,然而我发现我现在还没做过,这也就直接导致我今天模拟T2只杠了个暴力分……   那这道题怎么做呢?既然是最短路,那么一定要用spfa或dijkstra了,这里就讲dijkstra的做法吧,主要是这比spfa简单点,而且spfa不是

洛谷P1144 最短路计数 及其引申思考

图论题目练得比较少,发一道spfa的板子题目~ 题目:P1144 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1~N。问从顶点1开始,到其他每个点的最短路有几条。 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数。 接下来M行,每行两个正整数x, y,表示有一条顶点x连

洛谷P1144《最短路计数》

原更新日期:2019-01-12 09:57:14 最短路“板子” 题目描述 给出一个\(N\)个顶点\(M\)条边的无向无权图,顶点编号为\(1-N\)。问从顶点\(1\)开始,到其他每个点的最短路有几条。 输入输出格式 输入格式 第一行包含\(2\)个正整数\(N,M\),为图的顶点数与边数。 接下来\(M\)行,每行\(2\)

题解 P1144 【最短路计数】

这道题用一次SPFA就可以过了。在求最短路的同时,对答案进行统计即可。 实现: \(dis_i\)表示从1到\(i\)的最短路(实在还是不懂的话看程序吧)。 当\(dis_i>dis_j+1\)时,直接令\(ans_i=ans_j\)即可。 当\(dis_i=dis_j+1\)时,那么到\(i\)的路径就可以多加上\(j\)的路径,即\(ans_i=ans_i+ans

P1144 最短路计数

  题目地址 注意点: 本题需要开双向边. #include<cstdio> #include<iostream> #include<queue> #include<cstring> #define int long long using namespace std; const int MAXN=2e6,MAXM=4e6,INF=2e9,MOD=100003; struct Edge{ int from,to,w,nxt; }e[MAXM];

洛谷 P1144 最短路计数

题目传送门 解题思路: 因为所有的边权都为1,所以一个点的最短路就相当于是它在BFS搜索树中的深度。 一个点最短路一定经过了一个层数比它少一的结点(否则不是最短路)。 所以用每个相邻且层数比当前结点层数少一的点更新当前点的路径条数即可。 //来自GGN_2015大佬的思路 AC代码: 1 #in

洛谷P1144 最短路计数

最短路计数 题目链接 一道混在图论里的bfs 因为权值为一所以直接使用 bfs就可以求得最短路,注意邻接表与二位数组不同它直接表示的就是两个节点之间存在联系,所以当一个点放入队列,下一层即使该点所在的那一维。为了计数可以通过判断层。 注意这道题一定不可以把计数器放在结构体中!!!因

lLuogu P1144]最短路计数

emmmm这个题看起来非常复杂,实际上仔细一分析发现到一个点最短路的个数就是所有前驱最短路个数之和。如果在图上表示也就是以1为根的bfs搜索树,一个点的最短路个数等于每一个能够向它扩展的所有点的最短路个数之和。SPFA可以实现bfs。 先看代码吧 我们用ans数组存储每个点最短路个数