个人学习笔记平台,欢迎大家交流

红叶~

Be humble, communicate clearly, and respect others.

摘要: 【动态规划 | 树形DP小结】 参考:RioTian 树形DP,一般是在树上进行DP,由于树固有的递归性质,树形DP一般都是递归进行的。这是说我们的树其实是可以递归定义的,树的每一颗子树也是一个完整的树,直到叶子结点可以看做是递归终点。 树形DP是先算子树再进行合并,在实现上与树的后序遍历相似,即左 阅读全文
posted @ 2022-02-22 16:28 红叶~ 阅读(57) 评论(0) 推荐(0)
摘要: 状态压缩DP 对于某些动态规划问题,可以用深搜来枚举状态,但是那样的话时间复杂度就太高了。对于此类问题我们采用二进制表示状态,用1和0来表示某位置不同的状态。 1、对于状压DP问题,我们一般取一个初始状态。确定状态数组的含义。 2、明确相邻状态的转移,一般我们可以记录某个状态可以转移的相邻状态(打表 阅读全文
posted @ 2022-02-18 21:47 红叶~ 阅读(62) 评论(0) 推荐(0)
摘要: 算法基础课部分题目总结 第一章 基础算法 快速排序 快速排序 第k个数 归并排序 归并排序 逆序对的数量 二分 数的范围 数的三次方根 高精度 高精度模板 前缀和与差分 前缀和差分模板 双指针算法 最长连续不重复子序列 数组目标的元素和 判断子序列 位运算 二进制中1的个数(题解中有总结的方法) 离 阅读全文
posted @ 2022-02-17 22:43 红叶~ 阅读(30) 评论(0) 推荐(0)
摘要: 页面置换算法 概念 地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。 先进先出置换算法 FIFO 是最简单 阅读全文
posted @ 2022-02-17 21:31 红叶~ 阅读(328) 评论(0) 推荐(0)
摘要: python爬虫分析 python是解释执行 if __name__ == '__main__': # 当程序执行时 main() import urllib.request # response = urllib.request.urlopen("http://www.baidu.com") pr 阅读全文
posted @ 2022-02-17 21:29 红叶~ 阅读(589) 评论(0) 推荐(0)
摘要: 辗转相减法 1、理论依据 \[gcd(a,b) = gcd(b,a-b) \]辗转相除法的证明 2、应用 用来求若干个形如\((\frac{p}{q})^{r_i}\)的最大公约数:其中 \(\frac{p}{q}\)不是次幂的形式 p、q、\(r_i\)均为正整数 辗转相减法 int gcd(in 阅读全文
posted @ 2022-02-17 19:31 红叶~ 阅读(818) 评论(0) 推荐(0)
摘要: 理解 动态规划是指把一个问题分成若干个子问题,通过局部最优解得到全局最优的一种算法策略或者说一种思想方法,简单来讲就是用一个数组表示我们要求的问题的答案:由前一个问题的答案推出另一个问题的答案。 dp一般有三个步骤: 1、设计状态:设计合适的数组以及相应的含义。 2、状态转移方程:从已知问题的答案推 阅读全文
posted @ 2022-02-16 15:37 红叶~ 阅读(121) 评论(0) 推荐(0)
摘要: 滚动数组 作用在于优化空间,主要应用在递推或动态规划中,可以循环利用空间。 例如斐波那契数列,只由前面两个元素得出下一个元素 int d[]; d[0] = d[1] = 1; for(i = 2;i<80;i++) { d[i%3] = d[(i-1)%3] + d[(i-2)%3]; } 二维数 阅读全文
posted @ 2022-02-16 12:49 红叶~ 阅读(49) 评论(0) 推荐(0)
摘要: 区间DP 区间DP常用模板 所谓区间DP,指在一段区间上进行动态规划,一般做法是由长度较小的区间往长度较大的区间进行递推,最终得到整个区间的答案,边界就是长度为1和2的区间 所有的区间DP问题,有两种写法 1、第一维都是枚举区间长度,第二维枚举起点,先求出小区间的属性值,进而扩展到大区间 核心思想: 阅读全文
posted @ 2022-02-16 11:49 红叶~ 阅读(52) 评论(0) 推荐(0)
摘要: 例题 指数型枚举 输入样例: 3 输出样例: 3 2 2 3 1 1 3 1 2 1 2 3 题解: #include<iostream> using namespace std; const int N = 20; bool st[N]; int m; // 要输入的整数 void dfs(int 阅读全文
posted @ 2022-02-16 00:01 红叶~ 阅读(59) 评论(0) 推荐(0)