求助!!!P7071 [CSP-J2020] 优秀的拆分

P7071 [CSP-J2020] 优秀的拆分

@[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


| 下一页