2024.1.3 闲话
歌:いっぱいキャパシティ - 宮守文学 feat. 春日部つむぎ + 初音ミク .
今天数学老师讲进制转换,又不知道进制转换怎么做了 .
其实还是得记一下的吧……
Base Conversion
给一个 \(a\) 进制的高精度数 \(n\),转为 \(b\) 进制输出 .
好做法:\(\Theta(n^2)\) .
别的做法:首先按权展开:
\[\sum_{i=0}^na_i\cdot a^i=\sum_{i=0}^nb_i\cdot b^i
\]
上界暂且都写 \(n\) 了,看得懂就行 .
对左边高低位分治做,每次合并的时候相当于合并 \(b\) 进制信息,可以卷积优化 .
然后就到 \(\Theta(\mathsf M(n)\log n)\) 了,可以看 SPOJ 叫 BASECONV 的题或者 LOJ #183 .
upd. 听说进制转换最快只能 2log。。后面的内容应该是假了
有人说可以二项卷积,我没找到资料,先编一个,不一定对:
\[\begin{aligned}\sum_{i=0}^nb_i\cdot b^i&=\sum_{i=0}^nb_i\cdot(a+b-a)^i\\&=\sum_{i=0}^nb_i\sum_{k=0}^i\dbinom ik(b-a)^{k-i}a^k\\&=\sum_{k=0}^na^k\sum_{i=k}^nb_i\dbinom ik(b-a)^{k-i}\end{aligned}
\]
那么就是要解 \(\displaystyle a_k=\sum_{i=k}^nb_i\dbinom ik(b-a)^{k-i}\),二项式反演后二项卷积即可 \(\Theta(\mathsf M(n))\)(真的吗?)
果然有一个切入点就好想了 . 这里可能需要选一个好的 NTT 模数压位 .
Last
珍贵的回忆藏在脑中就会褪色 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17943564
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ