首页 > 其他分享 >例题_树基础 P5318

例题_树基础 P5318

时间:2025-01-18 23:21:17浏览次数:1  
标签:int void 基础 init dfs bfs vis P5318 例题

洛谷P5318

分析

关键词

  • n篇文章
  • m条参考文献引用关系
  • x文章有y参考文献
  • BFS&&DFS结果

步骤

  1. 定义 不仅要定义关键词,还要再定义一个容器 这里用\(set\)
set<int>e[100009];

注意要初始化

  1. 输入 输入n m x y这几个关键字

  2. 计算过程 分两步

  • 深搜
  • 广搜
  1. 输出 先调用函数,在输出结果

代码

伪代码

定义数组,同时定义 n m x y
void init(){
  输入
  初始化
}
void dfs(){
  标记走过 
  输出
  标记
}
void bfs(){
  定义队列
  初始化
  while(){
    判断
    输出
    标记
  }
}
int main(){
  init();
  dfs();
  putchar
  memset
  bfs();
  putchar
  return 0;
}

\(Code\)

#include<bits/stdc++.h>
using namespace std;
int n,m;
set<int>e[100009];
bool vis[100009];
void init(){
	for(scanf("%d%d",&n,&m);m;--m){
		int u=0,v=0;
		scanf("%d%d",&u,&v);
		e[u].insert(v);
	}
}
void dfs(int x=1){
	if(vis[x])return;vis[x]=1;
	printf("%d ",x);
	for(int v:e[x])dfs(v);
}
void bfs(){
	queue<int>q;
	q.push(1);
	while(!q.empty()){
		int x=q.front();q.pop();
		if(vis[x])continue;vis[x]=1;
		printf("%d ",x);
		for(int v:e[x])q.push(v);
	}
}
int main(){
	init();
	dfs();
	putchar('\n');
	memset(vis,0,sizeof(vis));
	bfs();
	putchar('\n');
	return 0;
}

标签:int,void,基础,init,dfs,bfs,vis,P5318,例题
From: https://www.cnblogs.com/yhy2013/p/18679020

相关文章

  • Linux基础-指令篇02【入门级】
    内容提要本章对文件系统以及目录操作进行了讲解,主要包括利用指令对文件/目录进行增删改查的操作。文件系统Linux本质上就是一个文件系统,Linux文件系统是操作系统组织存取、保存数据的一种手段。整体采用层级式的倒状树倒状树结构中的目录/:根目录,Linux中的绝对路径由此......
  • java零基础入门(一)
    Java零基础入门(一)一Java版本Java共分为三个版本JavaSE标准版最为基础的版本适合桌面程序、控制台开发等等JavaME嵌入式开发适合小家电等目前基本上已不再使用JavaEE企业级开发适用于web端、服务器开发等二Java安装环境介绍以下三个概念为下层包含上层的关系......
  • java零基础入门(二)
    Java零基础入门(二)基础语法一注释注释不会被运行,帮我们阅读代码,要养成写注释的习惯单行注释用//开头即可多行注释用/*开头*/结束,将需要写的内容夹在中间文档注释用/**开头*/结尾,里边特殊名词可以被识别二标识符与关键字在Java中所有的组成部分都需要名字。其中......
  • 蓝桥杯单片机基础部分——5、DS18B20温度传感器
    前言好久没有更新关于蓝桥杯单片机相关的模块了,今天更新一下数字温度传感器DS18B20的相关应用单线数字温度计DS1820介绍DS1820数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS1820或从DS1820送出,因此从主机CPU到DSl820仅需一条线(和地线)......
  • 树(基础)
    树1定义1.1树是什么树是一种数据结构,因为形似倒着的树而得名.1.2树的定义递归定义1.2.1有根树的定义形象化的,如图1,有根树存在根节点这一定义,从根节点可以分出任意个分支,这任意个分支又可以继续细分,分出的节点称为“子节点”。抽象化的,树也是\(N\)个节点和\(N-1\)......
  • 嵌入式基础 C语言篇 数组.初阶
    一、基本概念逻辑:一次性定义多个相同类型的变量,并存储到一片连续的内存中语法释义:intbuf[5];buf是数组名,即这片连续内存的名称[5]代表这片连续内存总共分成5个相等的格子,每个格子称为数组的元素int代表每个元素的类型,可以是任意基本类型,也可以是组合类型,甚至可以是数组初......
  • 嵌入式基础 C语言篇 指针初阶
    一、指针的入门(1)、预备知识0、图解:1、内存地址字节:字节是内存的容量单位,英文称为byte,一个字节有8位,即1byte(00000000---11111111)=8bits(0---1)地址:系统为了便于区分每一个字节而对它们逐一进行的编号,称为内存地址,简称地址。在32位系统:说明:地址+1就是......
  • 嵌入式基础 C语言篇 错题
    (1) 若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是________。A.1     B.2    C.2.0    D.2.53/2=1;y=2.0(2)简述i++和++i    i++是先使用i的值,再i+1;++i是先i+1,再使用i的值底层原理:1、i++和++i都是带有返回值的函数2......
  • base中TCP/IP基础学习笔记
    base中的网络模型的学习笔记一.关于TCP/IP网络模型引言对于同一台设备上的进程间通信,有很多种方式,有管道、消息队列、共享内存、信号等方式,对于不同设备上的进程间通信,就需要网络通信,设备是多样的,所以要兼容各种各样的设备,就协商出了一套通用的网络协议。网络协议是分层......
  • C++基础学习03
    C++基础学习032025-01-1715:59:09星期五关于数组数组有几个特点固定大小相同的数据类型连续存储这点就是说数组在内存中是连续存储的下标访问这点就是我们可以通过[num]的方式来对数组进行访问一般来说,我们使用dataTypearrayName[arraySize]的方式来创建......