图论初步2<蒟蒻专属,大佬勿喷>
前言:
本节课讲的是图论的几种遍历方式,若没看图论初步1的赶紧去看
https://www.cnblogs.com/Craker/p/12271090.html
正文:
零、温故而知新
上节课我们学的是图论最最最基础的邻接矩阵和邻接表(哎呀,邻接矩阵那么简单这里还复习个啥啊)
邻接表的“插队”模板还记得吗?温习一下,再打一遍(巨佬石老师提醒您:这都不会打,给我痛扁一顿)
void add(int x,int y,){
++tot;
e[tot].u=x;
e[tot].v=y;
e[tot].next=head[x];
head[x]=tot;
}
别忘了哈
一、深度优先遍历
(1)邻接矩阵(大佬kkksc03:这么弱智的你也写)
没啥好说的,几个要点:
1、与深搜基本没啥区别(其实深搜是图论的一个分支)
2、(看看标准的是怎么说的)
主要意思:沿一个点搜下去,标记已搜的,若 “无路可走”则返回到上一个点
代码:
void dfs(int v)
{
cout<<v<<" ";
visited[v]=;//标记
;j<=n;j++){
&&g[v][j]== )dfs(j);//搜下去
} //由于 我们只是遍历一下所以不用回溯
}
(2)邻接表:(哎呀,大同小异啊)
代码:
void dfs(int v){
visited[v]=; //标记
cout<<v<<" ";
;i=e[i].next){
){
dfs(e[i].v);
}
}
}
二、广度优先遍历
这是一种很像“层式遍历的东西”,不过本人却不太喜欢
(1)、邻接表(唉,邻接矩阵就不讲了喽大佬kkksc03:强烈支持!)
咋写呢? 队列来了!
何为队列?画一张丑陋的图

贴代码吧:
void bfs(int u){
,t=;
];
a[t]=u;//入队
b[u]=; //标记下一
while(h<t){ //咦?为啥是小于而不是等于呢?自己想
h++; //还是说吧:如果是小于等于的话head岂不大于tail了?
int v=a[h];
cout<<v<<" "; //输出
;i=e[i].next){
int x=e[i].v;
){ //不在队吧
b[x]=; //标记
++t;
a[t]=x; //入队
}
}
}
}
某大佬可能会说:这种队列也太土了吧? 本人表示:越土的东西越好用 反正指针我是不学的
写在后面的话:
这是我的第二篇博客(bug一定很多)(如有锅请赶快在评论区指出,谢谢!)
本人的个人主页(洛谷)https://www.luogu.com.cn/user/236929
本人的个人主页https://www.cnblogs.com/Craker/
欢迎来访!
谢谢!
本人QQ:2783119105
本人邮箱:yixuazeng66@126.com
如有问题,请在评论区指出或私信我,
谢谢!
(点个赞再走呗)(管理员kkksc03温馨提醒您:刷不到赞莫强求)
图论初步2<蒟蒻专属,大佬勿喷>的更多相关文章
- 图论初步<蒟蒻专属文章>
前言: 图论乃noip之重要知识点,但有点难理解 本人因此吃过不少亏 因为本人实在太弱,所以此篇乃正宗<蒟蒻专属文章> 正文:(本文仅介绍图论中的重点.难点,其余部分略将或不讲) 图 ...
- mooc上学习acllib后写的包含背景音乐的小涂鸦板(初入江湖,大佬勿喷)
#include "acllib.h"ACL_Sound sound1;ACL_Image img;//开始图ACL_Image img1;//涂鸦图ACL_Color c=RED ...
- Redis安装教程及安装报错解决方案(大佬勿喷)
安装环境:CentOS7 Redis版本:redis-6.0.9.tar.gz 依次按照以下顺序执行: 1. [root@localhost ~]# wget https://download.red ...
- [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)
更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...
- 一个蒟蒻对FFT的理解(蒟蒻也能看懂的FFT)
建议同学们先自学一下"复数(虚数)"的性质.运算等知识,不然看这篇文章有很大概率看不懂. 前言 作为一个典型的蒟蒻,别人的博客都看不懂,只好自己写一篇了. 膜拜机房大佬 HY 一. ...
- 一个GD初二蒟蒻的自我介绍
emmm……今天博客第一天使用呢,好激动啊…… 这里是一个来自GD的初二蒟蒻+无脑OIER,什么都不会 NOIP2017普及组:260压线1=还是看RP过的…… GDKOI2018:120暴力大法吼啊 ...
- 蒟蒻LQL的博客
这里是蒟蒻LQL的博客!!! 一枚水的不能再水的弱校ACMer···· 可能会在这写一些题解或者别的什么乱七八糟的··· 可能大概没什么人看,就当错题本好了o(* ̄▽ ̄*)ブ 因为太弱了难免有错误!发 ...
- 算法描述》LCA两三事(蒟蒻向)
LCA是图论中常用的解决树形结构子问题的工具,这一问题一般需要用一个简短的子函数直接解决,但是这对于广大蒟蒻们仍然是一个不小的问题. LCA是指在树形结构中两点的最近公共祖先,对于这个问题,直接向上找 ...
- 蒟蒻的HNOI2017滚粗记
蒟蒻的第一次省选,然而并没有RP爆发... Day 1: 8:00开考,(然而密码错误是什么鬼).跌跌撞撞,8:40终于拿到纸质试题. { T1:作为一名没有学过Splay的蒟蒻,考场上真的被出题人感 ...
随机推荐
- QSS基础-设置控件样式
1.QSS基础-设置同类控件样式'''QSS基础:Qt Style SheetQt样式表用于设置控件的样式和风格(比如控件的背景色,字体颜色,字体大小等)和CSS的功能比较相似,功能相似''' fro ...
- Cisco AP-格式化AP
故障情况:APC11-AP04#sho capwap ip config LWAPP Static IP ConfigurationIP Address 172.17.239.204I ...
- day 12 zuoye
复习 # 函数 -- 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱 ...
- Python学习第二十三课——Mysql 表记录的一些基本操作 (查)
查(select * from 表名) 基本语法: select <字段1,字段2,...> from <表名> where <表达式>; 例如,查询student ...
- 标准类 (Java Bean)
一个标准类通常包括四个部分: 1.所有成员变量都要用 private 关键字修饰 2.为每一个成员变量编写一对 Getter/Setter 方法 3.编写一个无参数的构造方法 4.编写一个全参数的构造 ...
- 「Luogu P5368 [PKUSC2018]真实排名」
PKUSC签到题 题目大意 给出一个长度为 \(N\) 的序列,序列中有 \(K\) 个数会乘二,对于每个数计算在乘二后大于等于这个数的个数与乘二前没有发生变化的方案数. 分析 思路很清晰,可以将答案 ...
- 【Python矩阵及其基础操作】【numpy matrix】
一.矩阵生成 1.numpy.matrix: import numpy as np x = np.matrix([ [1, 2, 3],[4, 5, 6] ]) y = np.matrix( [1, ...
- css不起作用报错:Resource interpreted as Stylesheet but transferred with MIME type text/html
解决:https://blog.csdn.net/sky_cui/article/details/86703706 找了好久........
- 《JavaScript高级程序设计》读书笔记(目录)
ajax创造性的技术让JavaScript变得更加强大起来.ECMAScript 和DOM标准JavaScript面向对象程序设计和继承----性能,优化 1.简介----JavaScript和ECM ...
- Steam 游戏 《The Vagrant(流浪者)》修改器制作-[先使用CE写,之后有时间的话改用CheatMaker](2020年寒假小目标08)
日期:2020.02.07 博客期:146 星期五 [温馨提示]: 只是想要修改器的网友,可以直接点击此链接下载: 只是想拿CT文件的网友,可以直接点击此链接下载: 没有博客园账号的网友,可以将页面下 ...