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

红叶~

Be humble, communicate clearly, and respect others.

摘要: 理解 动态规划是指把一个问题分成若干个子问题,通过局部最优解得到全局最优的一种算法策略或者说一种思想方法,简单来讲就是用一个数组表示我们要求的问题的答案:由前一个问题的答案推出另一个问题的答案。 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)