无论是模板题还是最大异或对着一题
都有这么一行代码
if (!son[p][u]) son[p][u] = ++ idx;
p = son[p][u];
所以我们可以知道,son数组的一维下标最大值的选取实际上是跟idx能够自增多少次来决定的
https://www.acwing.com/activity/content/problem/content/883/
这题中,输入的字符串总长度不超过 105,所以一维值选取1e5+10
https://www.acwing.com/problem/content/description/145/
而在这题中,数字需要以2进制进行表示,而每个数字最大为2的31次幂
所以一维下标应为数字的个数*31
和我自己总结的差不多hhh。加油
为什么?不应该看你的循环次数?
这个就相当于下面分出多少分支是一样的,因为数据范围最大时2的31次方,二进制时数字个数的31次方,也就是我的tire树可以一直往下这么多,你也可以理解为能记录的最大二进制数
一针见血的解释,这才是有价值的题解
(^▽^)