@[majingtong](/user/502981) ****可能****是``pow``精度的问题
by lsj2009 @ 2021-12-26 11:48:07
如果真要用反复``pow``来完成此题,那么建议手写``pow``。
时间复杂的 $O(log_2^n)->O(nlog_2^nn)$?
by lsj2009 @ 2021-12-26 11:50:20
@[lsj2009](/user/468657)
叫我手写快速幂???!!!
by majingtong @ 2021-12-26 11:58:19
%%%%%% TMD
by majingtong @ 2021-12-26 12:00:01
@[majingtong](/user/502981) 用
```cpp
int power(int a,int b) { //a^b
int ans=1;
while(b--) ans*=a;
return ans;
}
```
也可以(毕竟$O(nlog_2n)$与$O(nlog_2log_2n)$)没什么区别。
by lsj2009 @ 2021-12-26 12:04:48
@[lsj2009](/user/468657)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
by majingtong @ 2021-12-26 12:05:33
@[majingtong](/user/502981)
```cpp
int power(int a,int b) {
int ans=1,base=a;
do {
if(b&1)
ans*=base;
base*=base;
}while(b>>=1);
}
```
一把使你通向$O(nlog_2^{log_2^n})$的钥匙
by lsj2009 @ 2021-12-26 12:09:26
``return ans;``
by lsj2009 @ 2021-12-26 12:09:47
还是建议学习正解 $O(log_2n)$ 算法
by lsj2009 @ 2021-12-26 12:10:28
这不就是二进制的题吗,$2^i$ 可以直接表示为 `1<<i`,没必要用 `pow` 吧?
by int64 @ 2021-12-26 12:13:08