Acwing Arithmetic Learning:数据结构(2)
数据结构(2)acwing
1.trie树
- 快速存储和查找字符串的集合
- 结构特征:
- 例题:Trie字符串统计 ?
2.并查集(近乎O(1))
- 思路
- 将两个集合合并
- 询问两个元素是否在一个集合中
基本原理:
每个集合用一颗树来表示,树根的编号就是整个集合的编号。每个节点存储他的父节点,p[x]表示x的父节点
问题:
- 问题1:如何判断树根:if(p[x] == x)
- 问题2:如何求x的集合编号:while(p[x] != x) x = p[x];
- 问题3:如何合并两个集合:px是x的集合编号,py是y的集合编号。p[x] = y,直接上图
优化:
1.路径压缩
- scanf使用%s会默认忽略“空格”和"回车",不用%c
- 上代码:
3.堆
- 概念:”小根堆“(顾名思义{根小于左右儿子})----》为“完全二叉树”(最后一行可以不满,以上全满),上图
存储方式(一维数组存储)
- x的左儿子:2x
- x的右儿子:2x+1
如何手写一个堆?
插入一个数
heap[ ++ size] = x;up(size);
求集合中最小值
heap[1];
删除最小值
heap[1] = heap[size];size --;down(1);
删除任意一个元素
heap[k] = heap[size];size --; down(k);up(k);
修改任意一个元素
heap[k] = x;down(k);up(k);
Acwing Arithmetic Learning:数据结构(2)的更多相关文章
- translation of 《deep learning》 Chapter 1 Introduction
原文: http://www.deeplearningbook.org/contents/intro.html Inventors have long dreamed of creating mach ...
- 【Machine Learning】KNN算法虹膜图片识别
K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- 数据结构与算法 Big O 备忘录与现实
不论今天的计算机技术变化,新技术的出现,所有都是来自数据结构与算法基础.我们需要温故而知新. 算法.架构.策略.机器学习之间的关系.在过往和技术人员交流时,很多人对算法和架构之间的关系感 ...
- [Machine Learning] 国外程序员整理的机器学习资源大全
本文汇编了一些机器学习领域的框架.库以及软件(按编程语言排序). 1. C++ 1.1 计算机视觉 CCV —基于C语言/提供缓存/核心的机器视觉库,新颖的机器视觉库 OpenCV—它提供C++, C ...
- Machine Learning - 第3周(Logistic Regression、Regularization)
Logistic regression is a method for classifying data into discrete outcomes. For example, we might u ...
- Learning Scrapy笔记(六)- Scrapy处理JSON API和AJAX页面
摘要:介绍了使用Scrapy处理JSON API和AJAX页面的方法 有时候,你会发现你要爬取的页面并不存在HTML源码,譬如,在浏览器打开http://localhost:9312/static/, ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】
转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...
- 深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用
转自:http://kakajw.iteye.com/blog/935226 一.java对象的比较 等号(==): 对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例:又可以说是 ...
随机推荐
- Mybatis学习之自定义持久层框架(六) 自定义持久层框架:完善CRUD方法并进行测试
前言 没想到会等到半年以后才来写这篇文章,我已经不记得当初自己想要在这篇文章中写什么了,还好有一些零散的笔记留着,就对照着上一篇文章及零散的笔记,把内容给补充完吧. 完善CRUD方法 完善Defaul ...
- 用scanf_s判断输入数据是否合法
用scanf_s判断输入数据是否合法 对用户输入的整数进行求和.当用户输入任意字符时,结束程序并打印结果. A. 用户可以输入整数和浮点数 B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分 ...
- Linux_yum工具基本概述
一.什么是yum 1️⃣:yum是yellowdog update manager的简称,它能够实现rpm管理的所有操作,并能够自动解决各rpm包之间的依赖关系. 2️⃣:yum是rpm的前端工具,是 ...
- 10.8 ss:查看网络状态
ss命令 是类似并将取代netstat的工具,它能用来查看网络状态信息,包括TCP.UDP连接.端口等.它的优点是能够显示更多更详细的有关网络连接状态的信息,而且比netstat更快速更高效. ...
- Go语言之main包
Go语言的代码通过包(package)组织,包类似于其他语言里的库(libraries)或者模块(modules).一个包由位于单个目录下的一个或多个go源文件组成,目录定义包的作用.每个源文件都以一 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十六)——dapr+sentinel中间件实现服务保护
dapr目前更新到了1.2版本,在之前4月份的时候来自阿里的开发工程师发起了一个dapr集成Alibaba Sentinel的提案,很快被社区加入到了1.2的里程碑中并且在1.2 release 相关 ...
- React-setState的那些事儿
关于setState,使用过react的人应该再熟悉不过了,在hooks还不那么普及的时候,除了使用函数式组件,我们使用最多的应该就是类创建react的组件了,而在类组件中我们通常会使用state来管 ...
- MXNet 图优化与算子融合
MXNet 图优化与算子融合Graph Optimization and Quantization based on subgraph and MKL-DNN Purpose MKL-DNN引入了两个 ...
- 原子层沉积(ALD)和化学气相沉积(CVD)微电子制造铜金属化的研究进展
原子层沉积(ALD)和化学气相沉积(CVD)微电子制造铜金属化的研究进展 Atomic Layer Deposition (ALD) and Chemical Vapor Deposition (CV ...
- H.265视频编码与技术全析(下)
H.265视频编码与技术全析(下) 四.帧内预测模式 共35个(h264有9个),包括Planar,DC,33个方向模式: 除了Intra_Angular预测外,HEVC还和H.264/MPEG-4 ...