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

珍贵的回忆藏在脑中就会褪色 .

posted @ 2024-01-03 17:00  Jijidawang  阅读(95)  评论(3编辑  收藏  举报
😅​