摘要: 堆学习笔记 一、何为堆 堆(Heap)是一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看做一棵完全二叉树的数组对象。通常分为大顶堆(降序数组)和小顶堆(升序数组) 二、实现方法及基本操作 1.如何定义 STL中堆可以用优先队列实现(使用时要加头文件),即 priority_queue< 阅读全文
posted @ 2022-07-13 22:44 2009cqr 阅读(53) 评论(0) 推荐(0)
摘要: 哈夫曼树学习笔记: 一、何为哈夫曼树 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度(WPL)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树。特点:权值较大的结点离根较近。 二、哈夫曼树有什么用 计算机中实际应用多 阅读全文
posted @ 2022-07-13 22:26 2009cqr 阅读(203) 评论(0) 推荐(0)
摘要: 递推学习笔记: 一、什么是递推 递推算法是一种较为简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。 二、典型例题 1.(正推)P1720 月落乌啼算钱(斐波那契数列)洛谷传送门 题目背景 (本道题目木有隐藏歌曲……不用猜了……) 《爱与愁的故事第 阅读全文
posted @ 2022-07-02 11:41 2009cqr 阅读(148) 评论(0) 推荐(0)
摘要: 线性DP学习笔记: 一、什么是线性DP 线性DP是动态规划问题中的一类问题,指状态之间有线性关系的动态规划问题。(可以理解为DP中最简单的一种) 二、典型例题 说到DP即使没学过也应该略有耳闻,这其中似乎有一类题跟DP就好像绑定在了一起,那就是背包问题。——作者(2022年5月12日)[手动狗头] 阅读全文
posted @ 2022-05-12 12:59 2009cqr 阅读(110) 评论(0) 推荐(0)
摘要: 动态规划学习笔记: 一、什么是动态规划 动态规划及DP(Dynamic Programming)是⼀种分阶段求解决策问题的数学思想,它通过把原问题分解为简单的⼦问题来解决复杂问题。即通过将大问题划分为小问题,将小问题求解后一步步影响后面其他次小问题而达到全局最优解的一个过程 二、动态规划的核心思想 阅读全文
posted @ 2022-05-08 16:47 2009cqr 阅读(50) 评论(0) 推荐(0)