素数筛时间空间优化 时间优化 普通素数筛原理 :素数的倍数一定不是素数;据此筛选素数。 1void?work1() 2{ 3 int?cnt=0; 4 for(int?i=2;?i<=n;?i++) 5 { 6 if(!flag[i]) 7 { 8 prime[cnt++]=i; 9 / 在此处可有 ...
分类:
其他好文 时间:
2020-05-14 16:01:39
阅读次数:
77
以斐波那契数列为例 来看一下 滚动数组 是如何节约空间的 传统方式:如果想求解fib(7) 需要8个数组空间 0 1 1 2 3 5 8 通过观察 我们可以发现 求解fib(n) 我们只关心fib(n-1)和fib(n-2) 对再之前的数据并不关心 也就是可以认为是无效数据 这种特征特别适用于动态规 ...
分类:
编程语言 时间:
2020-03-12 10:01:42
阅读次数:
77
选择排序 选择排序算法是对冒泡排序算法进行优化后得到的一种排序算法,相比冒泡排序,选择排序减少了对序列进行排序的过程中,序列元素移动的次数。 原理 以对序列进行升序排序为例: 1) 从待排序序列中选择一个待排序区间,假设待排序序列长度为n,则待排序区间由[0,n-1]、[0,n-2]、[0,n-3] ...
分类:
编程语言 时间:
2020-01-12 13:35:39
阅读次数:
74
dp优化总结 一、滚动数组 典型的空间优化。 这应该是最最普通的一个优化了吧。。 对于某些状态转移第i个 只需要 用到第i 1个状态时,就可以用滚动数组,把第一维用0/1表示。 拓展1: 当一个状态转移要用到前m个转移时,我们依然可以滚起来,把第一维按模m的值滚起来。 拓展2: 若每一个决策可以选任 ...
分类:
其他好文 时间:
2019-08-27 17:08:18
阅读次数:
76
C++ bitset——高端压位卡常题必备STL 以下内容翻译自cplusplus.com,极大地锻炼了我的英语能力。 bitset存储二进制数位。 bitset就像一个bool类型的数组一样,但是有空间优化——bitset中的一个元素一般只占1 bit,相当于一个char元素所占空间的八分之一。 ...
分类:
其他好文 时间:
2019-08-27 12:47:48
阅读次数:
94
状态定义:$f_{i,j}$表示将前$i$件物品放入容量为$j$的背包中所能获得的最大价值 推理:第$i$件物品放或不放 方程:$f_{i,j}=max(f_{i 1,j},f_{i 1,j C_i}+W_i)$ $\Updownarrow $ 空间优化: $f_j$表示剩余$j$的被包能放下的最大 ...
分类:
其他好文 时间:
2019-08-18 16:02:05
阅读次数:
85
bitset 主要存储二进制数位。 bitset 就像一个 bool 类型的数组一样,但是有空间优化—— bitset 中的一个元素只相当于一个 char 元素所占空间的八分之一。 bitset 中的每个元素都能单独被访问,例如对于一个叫做 x 的bitset,表达式 x[3] 访问了它的第 4 个 ...
分类:
其他好文 时间:
2019-07-13 20:13:05
阅读次数:
107
01背包: 无优化 空间优化: 完全背包: 多重背包: (类似01背包,后面补) 分组背包: cpp for(int i=1;i=0;j ) { for(int i=1;i ...
分类:
其他好文 时间:
2019-04-21 20:11:36
阅读次数:
151
无法用复杂状态进行转移时改变计算方式;整体考虑;压缩空间优化时间 ...
分类:
其他好文 时间:
2019-02-17 10:48:35
阅读次数:
176