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的更多相关文章
随机推荐
- call, apply,bind的区别与用法
call, apply,bind的区别 相同点:都可以用来改变this指向 不同点: call, apply:传参方式不同: ...
- Oracle function函数中无法使用update更新
CREATE OR REPLACE FUNCTION changePY RETURN VARCHAR2 as PRAGMA AUTONOMOUS_TRANSACTION; --as 或者 is 后边 ...
- Mysql昨天,上个月条件查询
1.查询昨日数据 SELECT * FROM test WHERE DATEDIFF(DATE_FORMAT(NOW(),'%Y%m%d'),DATE_FORMAT(created_time,'%Y% ...
- web基础(3):CSS样式
chapter4 CSS样式 html是网页的内容和结构:CSS是网页的样式.内容和样式相分离,便于修改样式. CSS cascading style sheets 层叠样式表.一个内容上面可以添加多 ...
- Blender中服装网格重新拓扑实录
最近了解到游戏行业服装的一些处理流程.简单来说: 用MD等做衣服的软件,将服装做出来: 导出2种模型:缝合好的服装模型(叫它3d)以及没有变形的平铺板片模型(叫它2d),建议导出单层的,都要带着UV, ...
- ajv参数验证
1.验证枚举类型 var schema = { "properties": { "data": { "type": "object ...
- [Docker-1自顶向下学习Docker
本文目录: 什么是DOCKER? 什么是容器? 什么是DOCKER镜像? DOCKER有什么使用场景和优势? 流程图一:从中央仓库拉取镜像并部署 流程图二:上传镜像到中央私库 结语 什么是DOCK ...
- 南大ics-pa/PA0过程及感想
实验教程地址:https://nju-projectn.github.io/ics-pa-gitbook/ics2022/index.html 一.Ubuntu安装 在清华大学镜像站下载了Ubuntu ...
- mybatis中xml新增一条数据获取自增id
在insert的标签里加两个属性:useGeneratedKeys="true" keyProperty="patentId" ,这个key ...
- params的使用
今天在写vue的JavaScript的时候有个地方需要传很多参数,自己写不出来,求助 我的博博 后拿到神奇代码: 神奇代码中有params,俺自作聪明,以为他是一个json的数据,所以自己改了个名字 ...