关于 CSP 的 O(n) 快速幂,警示后人
  • 板块学术版
  • 楼主Eznibuil
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/9/18 09:29
  • 上次更新2023/11/2 19:21:43
查看原帖
关于 CSP 的 O(n) 快速幂,警示后人
335096
Eznibuil楼主2023/9/18 09:29

发现一件比较神奇的事情。考虑以下代码:

int Pow(int x,int n){return n?Pow(x,n>>1)*Pow(x,n>>1)*(n&1?x:1):1;}

在 GCC 和 Clang 下,开 O1 即可让递归调用只调用一次,复杂度 O(log⁡n)O(\log n)。

然而在 MSVC 上,优化拉满硬是调用两次把复杂度干到 O(n)O(n)。

珍爱生命,远离 MSVC。

2023/9/18 09:29
加载中...