roy4801/FJU_ElPsyCongroo

Sieve overflow

Closed this issue · 1 comments

抱歉打擾了, 發現一些問題想回報一下

  • sieve.h#L28: i*i 的地方有可能會 overflow, 強制轉成 size_t 的話也有可能會遇到 32-bit compiler 的問題
  • Disjoint::find: 會建議改路徑壓縮,因為 O(n) find 蠻少用的
- return x==p[x] ? x : find(p[x]);
+ return x==p[x] ? x : p[x] = find(p[x]);

竟...竟然是大大Σ(°ロ°)
感謝回報