警示TLE后人
查看原帖
警示TLE后人
1283951
csxx601cjy楼主2025/7/22 17:23

用 memset 初始化整个数组的请注意,

memset 虽然效率很高,

但是 3e6×(26+26+10)×32×1e5×164=9,300,000,000,0003e6\times (26+26+10)\times 32\times 1e5\times\frac{1}{64}=9,300,000,000,000

其中 3e6×(26+26+10)3e6\times(26+26+10) 是数组大小,
3232 是一个 int 占的空间,
1e51e5 是 memset 次数,
6464 是机器字长。

由于每次新增的节点个数(记为 cnt)大部分情况下远小于输入字符串的总长度(3e63e6),

所以每次只要对数组第一个维度的前 cnt 个进行 memset,就行了。

2025/7/22 17:23
加载中...