|
沙发
楼主 |
发表于 2020-2-21 11:17:06
|
只看该作者
小技巧:
1、数组可以当做跳转表:我以前做过的ISBN,十进制转十六进制等,高精度计算中数组可以多装几个数位,set与布尔数组,位运算之间有联系。请体会下
2、多维数组可以转成一维数组,c++中是第一维优先。一维数组也可以拆成多维数组,这里好像隐约有升维降维的思想。练习题 :cantor表
3、字符串常用函数size find erase和某些特殊函数 strtok strrev strups strlws
4、把二维数组和直角坐标系对应起来的话,(x,y)*(2*2矩阵)其实就是坐标旋转。这个要好好体会,怕这类题目
5、fibo中矩阵乘法的意思,floyd中矩阵的意思。交换等也可以使用矩阵(骰子问题、置换群),矩阵乘法可以做快速幂
6、KMP算法是一个递归的过程,好好在纸上画一画,练习题:环状DNA匹配,PowerString问题
7、manacher算法其实不难,前面的构造字符串很精妙,以后可以仿效。
8、字符哈希技术让kmp好像在考场上似乎没有必要,看这里
9、ST表以前讲过,但是这种思想要注意。打表大法的境界,试试这样的打表打表做做麦森数。(打2^n的表 n=10,100,1000,10000等,计算时直接调用)
A、前缀和,二维前缀和,变化的前缀和(求和),为什么还要变化成树状数组。(起点在变化!)
B、二维树状数组
C、指针链表和静态链表(很多高级数据结构,树,图等都需要这个)做约瑟夫问题的数组法,链表法,数组模拟的静态链表的三种做法
D、新内容:块状链表 结合和数组的方便查询和链表的方便插入两个优点,在处理字符串插入输出,表格内容插入删除统计等有存在的意义。
|
|