分类: ACM

4 篇文章

ACM笔记 – 动态规划DP
终于学到这里了,一直觉得动态规划是一个很高档的东西hhhhh 动态规划是将大问题拆分成小问题,而小问题之间是相互关联的,且较为相似,因此可以将前面的计算结果记录下来用在后面的问题中,避免重复计算。DP有线性DP和非线性DP,线性DP将状态记录在数组上,而非线性DP则是将状态记录在树上的。 基础DP 最少硬币 从最小面额开始从前往后递推。 #incl…
ACM笔记 – 高级数据结构
概述 数据结构要素 数据的逻辑结构:线性结构(数组、栈、队列、链表)、非线性结构、集合、图等。 数据的存储结构:顺序存储(数组)、链式存储、索引存储、散列存储等。 数据的运算:初始化、判空、统计、查找、遍历、插入、删除、更新等。 常见的数据结构 数组 链表 栈 队列 树 二叉树 集合 哈希 堆 优先队列 并查集 并查集 - OI Wiki主要用于处…
ACM笔记 – 搜索技术
《算法竞赛入门到进阶》的该章节,主要介绍BFS和DFS,以及它们的优化技术,并介绍一些经典案例如排列组合、生成子集、八皇后、八数码、图遍历等。 递归和排序 问题 打印$n$个数的全排列,共$n!$个 打印$n$个数中任意$m$个数的全排列,共$\frac{n!}{(n-m)!}$个 解决方案 方案一、调用STL 先对这些数字进行排序,获得最小序列。…
ACM笔记 – STL和基本数据结构
容器 包括顺序式容器和关联式容器 顺序式容器 经学长提醒,stack、queue、priority_queue更准确的定义是“适配器”,参考C++(STL)容器适配器 Vector 复杂度: 访问复杂度:$O(1)$ 移动复杂度:$O(n)$ vector是STL的动态数组。以数组形式储存,内存空间连续。插入和删除操作,以及需要增长数组时,需要进行…