loj6851
(CF1761D Tester Solution in Chinese)
定义 \(L(v)=\log_2\operatorname{lowbit}(v+1)\);也就是说,\(L(v)\) 是 \(v\) 在二进制下末位 \(1\) 的个数。
例如,\(L((1011)_2)=2,L((11100100111)_2)=3\)。
然后定义
\]
则,答案可以被描述为
\]
考虑对其做递推。
通过对 \(i,j\) 末位做分类讨论,容易得到
\]
而这立刻给出
\]
\]
也就是说,我们只用去研究 \(C(n,k,0)\),就可以获得答案了!
于是对其,我们定义一个 BGF(二元生成函数)
\]
然后就得到
\]
\]
\]
\]
这样,我们的答案就是
\]
考虑如何计算 \(S(n,k)\)。
\]
这两部分是类似的,现在我们就考虑第一部分(为了减少手算量)。我们仅仅观察第一部分好了。
不妨称之为 \(A_n\)。
\]
考虑使用 ODE 来计算所有 \(A_n\)。
设
\]
\]
则
\]
于是
\]
即
\]
\]
从而
\]
考虑边界,也就是
\]
于是我们就可以在 \(O(n)\) 时间内计算出数列 \(G\) 了。
事实上,如果模数为 \(998244353\),我们还可以用整式递推在 \(O(\sqrt n\log n)\) 时间内求出单项 \(S(n,k)\)。
参考代码。
loj6851的更多相关文章
随机推荐
- 如何简化跨网络安全域的文件发送流程,大幅降低IT人员工作量?
为什么要做安全域的隔离? 随着企业数字化转型的逐步深入,企业投入了大量资源进行信息系统建设,信息化程度日益提升.在这一过程中,企业也越来越重视核心数据资产的保护,数据资产的安全防护成为企业面临的重大挑 ...
- java读取虚拟串口数据
语言:java 虚拟串口工具:Virtual Serial Port Driver Pro 9.0,选择pairing模块下,点击add virtual paring按钮即可创建串口对,还无法自定义o ...
- JS学习-Web Workers API接口
Web Workers API接口 通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作.这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通 ...
- Java——File类
File类 File:代表一个文件或者文件夹 方法 createNewFile() exists() getAbsolutePath() getName() getParent() isDirecto ...
- jmeter进行websocket 通信
最近项目弄了基于websocket的通信接口,所以需要做一个websocket的接口压测. jmeter当前自带的插件无法进行jmeter接口的通信,所以 本人是下载的一套jar包插件,进行的安装 1 ...
- ubuntu下编译安装uWebSockets
最近开始接触websocket,第一次装的时候,还是遇到了些问题,这里记录一下 1.从git下载uWebSockets 地址:https://github.com/uNetworking/uWebSo ...
- PYTHON中的CONCURRENT.FUTURES模块
一 : 概述 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPoolExecutor: 进程池,提供异 ...
- 批量添加esxi主机到Vcenter
1 连接vcenter Connect-VIServer -Protocol https -User 'administrator@vsphere.local' -Password 'Vcenter密 ...
- Linux 安装jdk教程
https://www.cnblogs.com/mabiao008/p/12059069.html
- 用tkinter编写一个获取图片资源的GUI工具
目录 效果展示 导入tkinter库 窗口属性 按钮和输入框 文本输入框Text 运行 打包成exe文件 源码地址 本文可以学习到以下内容: 使用tkinter的Entry功能获取本地文件夹 使用tk ...