链式前向星BFS
本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5399068
采用链式前向星的BFS:
- #include <iostream>
- #include <cmath>
- #include <cstdio>
- #include <cstring>
- #include <cstdlib>
- #include <algorithm>
- #include <queue>
- using namespace std;
- typedef long long LL;
- const int maxN = + ;
- const int maxM = + ;
- int head[maxN];
- int visited[maxN];
- int N, M;
- struct EdgeNode
- {
- int to;
- int w;
- int next;
- };
- EdgeNode Edges[maxM];
- void BFS(int x)
- {
- memset(visited, , sizeof(visited));
- queue<int> initQueue;
- for(int i = ; i <= N; i++)
- {
- if( !visited[i] )
- {
- visited[i] = ;
- initQueue.push( i );
- while( !initQueue.empty() )
- {
- i = initQueue.front(); //取得对头的节点,一定是下次待扩展的节点
- initQueue.pop();//队顶元素出队(出队代表着访问到了这个节点)
- //遍历与当前节点相连的节点
- for(int j = head[i]; j != -; j = Edges[j].next)
- {
- //如果没被访问,入队
- if( !visited[ Edges[j].to ])
- {
- visited[ Edges[j].to ] = ;
- initQueue.push( Edges[j].to );
- }
- }
- }
- }
- }
- }
- int main()
- {
- freopen("input.txt", "r", stdin);
- memset(head, -, sizeof(head));
- cin >> N >> M;
- for(int i = ; i <= M; i++)
- {
- int x, y ,z;
- cin >> x >> y >> z;
- Edges[i].to = y;
- Edges[i].w = z;
- Edges[i].next = head[x];
- head[x] = i;
- }
- memset(visited, , sizeof(visited));
- BFS();
- return ;
- }
链式前向星BFS的更多相关文章
- zzuli 2130: hipercijevi 链式前向星+BFS+输入输出外挂
2130: hipercijevi Time Limit: 1 Sec Memory Limit: 128 MB Submit: 595 Solved: 112 SubmitStatusWeb B ...
- poj-1459-最大流dinic+链式前向星-isap+bfs+stack
title: poj-1459-最大流dinic+链式前向星-isap+bfs+stack date: 2018-11-22 20:57:54 tags: acm 刷题 categories: ACM ...
- 链式前向星存树图和遍历它的两种方法【dfs、bfs】
目录 一.链式前向星存图 二.两种遍历方法 一.链式前向星存图:(n个点,n-1条边) 链式前向星把上面的树图存下来,输入: 9 ///代表要存进去n个点 1 2 ///下面是n-1条边,每条边连接两 ...
- 链式前向星写法下的DFS和BFS
Input 5 7 1 2 2 3 3 4 1 3 4 1 1 5 4 5 output 1 5 3 4 2 #include<bits/stdc++.h> using namespace ...
- zzuli 2131 Can Win dinic+链式前向星(难点:抽象出网络模型+建边)
2131: Can Win Time Limit: 1 Sec Memory Limit: 128 MB Submit: 431 Solved: 50 SubmitStatusWeb Board ...
- 网络流dinic模板,邻接矩阵+链式前向星
//这个是邻接矩阵的#include<iostream> #include<queue> #include<string.h> #include<stdio. ...
- Pants On Fire(链式前向星存图、dfs)
Pants On Fire 传送门:链接 来源:upc9653 题目描述 Donald and Mike are the leaders of the free world and haven't ...
- 链式前向星+SPFA
今天听说vector不开o2是数组时间复杂度常数的1.5倍,瞬间吓傻.然后就问好的图表达方式,然后看到了链式前向星.于是就写了一段链式前向星+SPFA的,和普通的vector+SPFA的对拍了下,速度 ...
- 单元最短路径算法模板汇总(Dijkstra, BF,SPFA),附链式前向星模板
一:dijkstra算法时间复杂度,用优先级队列优化的话,O((M+N)logN)求单源最短路径,要求所有边的权值非负.若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的 ...
随机推荐
- 一个Objective-C对象如何进行内存布局?(考虑有父类的情况)
1.对象isa指向类对象,类对象的isa指向元类.元类isa指向根元类.根元类的isa指针指向自己,superclass指针指向NSObject类 2.实例对象结构体只有一个isa变量,指向实例对象所 ...
- DOS程序员手册(十)
终于到(十)了~~~ 503页 ES:DI 指向未更新且未打开的FCB的指针 注释:该功能最初用来从命令行中析取文件,并以正确的格式来保存此文件 以便打开FCB.为了实现这个目的,可首先将 ...
- 为什么要搞vim
一. 先得想清楚折腾vim受的这顿折磨值不值.值.零碎记录几点. 迫使我使用vim的原因如下: (1)之前实习的公司的开发机上只有vim,以后工作的公司也只有vim,同部门的同事大都用vim:如果不用 ...
- Grid 布局管理器
Grid 布局管理器: Grid布局类wx.GridSizer,Grid布局以网格形式对子窗口或控件进行摆放,容器被分成大小相等的矩形,一个矩形中放置一个子窗口或控件. wx.GridSizer构造方 ...
- 基于TensorFlow的循环神经网络(RNN)
RNN适用场景 循环神经网络(Recurrent Neural Network)适合处理和预测时序数据 RNN的特点 RNN的隐藏层之间的节点是有连接的,他的输入是输入层的输出向量.extend(上一 ...
- mac系统安装/升级node
一.安装 1.node 是通过brew来安装的,所以第一步先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Ho ...
- 【bzoj1976】[BeiJing2010组队]能量魔方 Cube 网络流最小割
题目描述 一个n*n*n的立方体,每个位置为0或1.有些位置已经确定,还有一些需要待填入.问最后可以得到的 相邻且填入的数不同的点对 的数目最大. 输入 第一行包含一个数N,表示魔方的大小. 接下来 ...
- P2029 跳舞
题目描述 小明今天得到一个跳舞毯游戏程序Dance.游戏每次连续出N个移动的“箭头”,箭头依次标号为1到N,并且的相应的分数S[1..N].如果你能“踏中”第i号箭头,你将获得相应的分数S[i]:否则 ...
- ubuntu添加新用户并添加管理员权限
Ubuntu创建新用户并增加管理员权限 Family 2014-06-24 22:21:22 $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为 ...
- 洛谷 P3396 哈希冲突 解题报告
P3396 哈希冲突 题目背景 此题约为NOIP提高组Day2T2难度. 题目描述 众所周知,模数的hash会产生冲突.例如,如果模的数p=7,那么4和11便冲突了. B君对hash冲突很感兴趣.他会 ...