Skip to content
败犬日报 2026-02-26

败犬日报 2026-02-26

1. std::gcd 的欧几里得算法和 stein 算法

https://codeforces.com/blog/entry/137056

欧几里得算法大家应该比较熟,是不断取模;新版 GCC 且标准 C++20 之后用了 stein 算法,不断去除公共 2 因子并相减。

stein 算法平均意义上更快,取模的开销太大了。但是特定输入比如 gcd(1, 0x7fffffff),stein 要循环个 31 次,欧几里得 1-2 次就做完了。

上面文章作者大概就是被这种输入 hack 了。