邻接表的存储

2023-11-02

#include<bits/stdc++.h>
using namespace std;
const int N = 105;

int ne[N << 1], e[1 << N], h[N], idx;

/* 
h[a]; 		// 存放一个a点连接的边的编号
e[idx]; 	// 抽象为表示idx当前边,但结果存放的是b点的编号
ne[idx]; 	// 表示当前编号为idx的边的后面一条边

*/

// 注意:h[a]中索引存放的是(a->b)a点的编号
// e[idx]的结果存放的是(a->b)中b点的编号,表示新建一个结点
// 其他的所有位置均表示边的编号

void add(int a, int b) {
	// a是父节点,b是子结点 
	e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}

int main()
{
	memset(h, -1, sizeof h);
	
	for(int i = 0;i < N;i ++) {
		cin >> a >> b; // 假设b是a的父节点(有向图) 
		add(b, a); // b -> a
		// 如果是无向图,则再加一句add(a,b) 
	}

	for(int i = h[x]; ~i; i = ne[i]) {
		int j = e[i]; // i表示的是边的编号,j=e[i]表示的是该边连接的点编号 // 表示x的某个子结点,遍历全部子结点 
	}

	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

邻接表的存储 的相关文章

  • 独立按键消抖与松手检测

    记录下最近独立按键消抖和松手检测 我对独立按键的处理思路是 1 获得键值 2 消抖处理 3 松手检测 4 键值解析 1 获得键值 这里把独立按键做个编号 例如有两个按键记为KEY0 KEY1 用一个变量来记录当前按键标记值 比如Cur Ke

随机推荐

  • npm install 编译时报“Cannot read properties of null (reading ‘pickAlgorithm‘)“

    先看报错 先说下网上大多数的解决方案 方案一 重新安装node解决 方案二 删了node models重新下 或者直接下载CNPM 淘宝镜像 进行安装 CNPM安装办法 npm install g cnpm registry https r
  • 解决STM32驱动0.96OLED不亮的问题

    问题描述 使用STM32无法驱动OLED 解决方案 1 检查硬件连接是否有误 OLED STM32 VCC 5V或3 3V SDA SDA SCL SCL GND GND 备注 最好接STM32最小系统版的3 3V 当连接STM32最小系统
  • Javaio流

    io流 关于Java的io流一般按照数据操作类型可以分为字节流与字符流 首先来说一下字节流 字节流 字节流的方法都是以stream结尾的 字节流的用途 转换图片为二进制 转换音频 视屏为二进制 字符串等也可以转为二进制 字节流常用于图片 音
  • 签到题【牛客算法周周练6E】【暴力枚举+线段树】

    题目链接 题目保证数据随机 数据随机真的是太强了 直接可以跑最坏时候是的复杂度 直接暴力建线段树 然后更新的时候更新到底 查询的时候也是查询到底 因为数据随机 所以其实被处理的次数是很少的 因为要刚好是set里有的 或者是set里没有的 这
  • Unity3D-----三维数学(向量)

    Unity3d gt 三维数学之向量 一 向量 1 什么是向量 2 向量的形式 3 向量的大小 4 向量的方向 二 向量运算 1 向量相减 2 向量相加 3 向量与标量的乘除法 4 点乘 5 叉乘 三 三角函数 1 角的度量单位 2 三角函
  • Labelme 目标检测和语义分割的数据标注

    1 安装labelme 打开conda prompt 输入以下代码创建虚拟环境 打开虚拟环境 安装lelme conda create n labelme python 3 6 创建虚拟环境 conda activate labelme 打
  • 解决idea出现报错:Error running,Command line is too long. Shorten command line

    报错的原因 因为项目需要打印的环境变量太长 超过了限制 需要缩短命令行来解决问题 解决办法 方法一 Edit Configurations 将默认的Shorten command line的值user local default 改为 JA
  • 格式工厂多个图片合并成一个PDF的报错

    使用图片合并PDF功能时 当图片数量超过50会报错 找到imgconv py文件 将50改为500 保存 现在可以支持100张图合并成一个PDF文件了 但是超过150张程序会直接闪退 正在解决中 补充说明 1 如何设置PDF压缩比 打开 g
  • 有奖调研

    简介 感谢您一直以来对阿里云通信短信服务的支持 为了提升用户体验 为您在数字化转型的通信之路提供助力 云通信短信服务将发起一次满意度调研 有关短信服务 无论使用情况 抑或功能需求 还是文档 产品介绍页 计算与账单 控制台 API SDK 售
  • TypeError Cannot read properties of undefined (reading ‘matched‘)vue项目创建之后写路由报错

    vue项目创建之后写路由报错 原代码 修改之后代码 在 import 路由文件后 命名为Router 就会出现报错 原因 router 才是Vue实例化的配置字段名称 不识别其他的
  • Linux下访问数据库

    Linux下访问数据库 声明 本文只简单描述Linux系统下访问mysql数据库的步骤 关于连接上数据库之后的简单的对于数据库的增删改查等操作只是稍微提及 关于增删改查的语句书写 本文不再讲述 一般来说 访问数据库有如下几个步骤 1 初始化
  • C#控制台程序中使用log4.net来输出日志

    Apache log4net 库是一个帮助程序员将日志语句输出到各种输出目标的工具 log4net 是优秀的 Apache log4j 框架到 Microsoft NE T 运行时的端口 我喜欢他可以自定义输出 区分等级等特点 导入库 我们
  • Android自定义控件(三)---实战篇(详解onMeasure)

    接着Android自定义控件 二 实战篇的讲解 这篇我们来详细讲一下测量 onMeasure 和绘制 onDraw 这两个方法 首先 我们来看测量 onMeasure 方法 在这个方法里 我们主要是设置控件的宽高 widthMeasureS
  • jqgrid 翻页记录选中行

    简单的jqgrid列表 list jqGrid url contextPath getList postData data datatype json colNames 用户名 密码 colModel name name index nam
  • 递归算法

    一 一半又一只 一个人赶着鸭子去每个村庄卖 每经过一个村子卖去所赶鸭子的一半又一只 这样他经过了七个村子后还剩两只鸭子 问他出发时共赶多少只鸭子 经过每个村子卖出多少只鸭子 1 题目分析 设经过第n个村子时有fun n 只鸭子 卖去fun
  • java 根据数据库表生成实体类工具

    public class CodeGenerator 修改生成配置 public static String dbUrl 数据库连接串 public static String dbName 账号 public static String
  • 【js】Object.entries的用法

    Object entries是返回一个键值对数组 const obj one 1 two 2 three 3 const result Object entries obj console log result one 1 two 2 th
  • 【Go】Go 的项目目录

    文章目录 一 Go 的项目目录 1 适合个人开发者 2 目前流行的项目结构 3 适合企业开发者 二 Go 项目构建及编译 第一个 Go 程序 参考链接 一 Go 的项目目录 进行Go语言开发的时候 我们的代码总是会保存在 GOPATH sr
  • 阿里云物联网——MQTT协议---CONNECT

    什么是MQTT 1 1简介 MQTT的中文含义 消息队列遥测传输 MQTT的英文 Message Queuing Telemetry Transport 它是基于TCP IP协议 为硬件性能低下的远程设备和网络情况糟糕的情况下设计发布的发布
  • 邻接表的存储

    include