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的更多相关文章
随机推荐
- 访问第三方接口带Authorization认证
第一种方式 HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add("Authorization", " ...
- 如何优雅地写LCD接口的使用
通过面向对象方法进行实现,可以多学习 参考链接: http://www.wujique.com/2021/05/16/lcd%e9%a9%b1%e5%8a%a8%e5%ba%94%e8%af%a5%e ...
- UE4笔记索引
图形 渲染 延迟渲染 三维渲染流程 渲染优化 基本渲染 材质 材质节点组合 节点分类 特别的属性 其他 坐标空间与切线空间 坐标轴 编码 平台相关 UBT编译 命令行 程序到CPU路径 C++与蓝图互 ...
- 使用batch-import工具向neo4j中导入海量数据【转】
转载备忘 链接:https://www.yisu.com/zixun/496254.html 这篇文章给大家分享的是有关数据库中怎么使用batch-import工具向neo4j中导入海量数据的内容.小 ...
- vue实现图片上传且实时预览
<div class="up-img"> <div class="imgList"> <ul> <li v-for=& ...
- consul剔除某个服务
curl --request PUT http://ip:端口/v1/agent/service/deregister/服务对应的id地址
- 题解[CF674D]Bearish_Fanpages
题意 原意简述版 有 \(n\) 个公司,每个公司在某社交媒体拥有一个粉丝专页.该社交媒体推出了"关注"功能,每个粉丝专页必须"关注"一个粉丝专页,保证不会有自 ...
- 【Linux】Linux网络编程
socket 默认开启的socket是阻塞的,想要设置非阻塞的话,可以用 fcntl设置为 nonblock:或者使用setsockopt进行更多设置: 一般使用推荐 设成nonblock,然后epo ...
- CI2454国产8位RISC核SoC芯片
Ci2454是一款集成无线收发器和8位RISC(精简指令集)MCU的SOC芯片.主要应用在遥控玩具.智能灯控.数据透传.工业控制等领域.无线收发器主要特性 工作在 2.4GHz ISM 频段. 调制方 ...
- 自定义注解获取请求Header中的值
前言 这几天开发一个项目,为了方便,前台将当前登陆人的ID和名称放在每个请求的Header中(这里不考虑安全性之类的),这样后台只要需要用到,就直接从Header中get出来就可以了. 后台实现方法 ...