警示后人
查看原帖
警示后人
484910
SwordDance楼主2023/10/4 17:02

这题理论上阈值设置 sqrt(N)sqrt(N) 时间复杂度更均匀,但实际上这样做大概率会 TLETLE or MLEMLE,但是改成 sqrt(N)/2sqrt(N)/2 就轻松过了。

经测试,以蒟蒻代码为例,设置 sqrt(N)sqrt(N) 会 MLEMLE #18且 900+ ms ,设置 sqrt(N)/2sqrt(N)/2 就是 608ms, 237400KB。设置 sqrt(N)/4sqrt(N)/4 就是 420ms,138400KB。 显然一定范围内阈值越小越优。

具体原因的话,大概是随机数据出现大于阈值长度的集合很少,同时阈值以下的集合处理要开更多的空间,导致实际时空分布不均。

又是一次实践战胜理论(雾)

2023/10/4 17:02
加载中...