在 OI-wiki 中提到:
从测试结果中可知,时间复杂度 O(nloglogn) 的埃氏筛在使用 bitset 优化后速度甚至超过时间复杂度 O(n) 的欧拉筛,而欧拉筛在使用 bitset 后会出现「负优化」的情况。
但是经过我的测试,发现只有后半句话是对的。四种提交记录分别如下:
-
布尔数组+欧拉筛
-
bitset+欧拉筛
-
布尔数组+埃氏筛
-
bitset+埃氏筛
其欧拉筛一直稳居第一,而埃氏筛+bitset确实更快(布尔数组的那个就只有 40 分),而且欧拉筛用 bitset 确实更慢了。
顺便问一下为什么欧拉筛+bitset比布尔数组的慢,而埃氏筛却更快呢?