错位储存
错位储存
- 当我们要给二维的数据一个用一维来表示的位置,我们可以给第一维度的数据赋予一个较大的权值,第二维度的数据赋予一个较小的权值,并确保两者在综合时不会出现交叉的现象。
- 比如,当一个数据是由变量a和变量b共同来决定的时候,且知道变量a的数据范围是在1到100,变量b的范围在1到9,我可以给a乘上10,给b乘上1,这样这个数据就可以由10a+b来表示,并且不会发生冲突。
- 冲突:当a的权值是1且b的权值是1时,要表示数字18,有多种表示方案,比如a=17,b=1和a=16,b=2等等,反过来,也就是说18可以表示多种由a和b组成的信息(指代不明)。
联系:
除数和余数的关系,哈希,进制
应用:
- 二维的并查集