【题解】CTS2019珍珠(二项式反演+卷积)
【题解】CTS2019珍珠
题目就是要满足这样一个条件\(c_i\)代表出现次数
\[
\sum {[\dfrac {c_i } 2]} \ge 2m
\]
显然\(\sum c_i=n\)所以,而且假如\(c_i\)是\(2\)的约数就有正常的贡献,如果不是就有少一点的贡献,那么
\[
\sum^D_{i=1} {[2\mid c_i]} > n-2m
\]
设\(f_i\)为钦定有\(i\)种颜色出现偶数次的方案。问题瞬间就变成了HAOI染色...
则有
\[
f_i={D\choose i}[x^n]n!(\dfrac {e^x+e ^{-x}}{2})^i{(e^x)}^{D-i}
\]
选出钦定的\(i\)个颜色,后面是序列的生成方式。
\[
2^if_i={D\choose i}[x^n]n!( {e^x+e ^{-x}})^i{(e^x)}^{D-i}
\]
展开\(^i\)
\[
2^if_i={D\choose i}[x^n]n!\sum_{j=0}^i{i\choose j}{(e^x)}^{D+2j-2i}
\]
由于是求\([x^n]\)所以
\[
2^if_i={D\choose i}n!\sum_{j=0}^i{i\choose j}\dfrac {{(D+2j-2i)}^n}{n!}
\]
\[
={D\choose i}\sum_{j=0}^i{i\choose j} {{(D+2j-2i)}^n}
\]
所以
\[
\dfrac {2^if_i}{{D\choose i}i!}=\sum_{j=0}^i \dfrac {(-(2i-2j-D))^n}{j!(i-j)!}
\]
右边的式子直接NTT得到。
然而我们知道,这样的钦定是有重复的,具体如何重复参考[【题解】HAOI2018]染色(NTT+容斥/二项式反演)。我们直接二项式反演:
设\(g_i\)表示恰好\(i\)种颜色出现次数为偶数的方案,则考虑一下\(g_j\)在\(f_i\)出现的次数
\[
f_i=\sum_{j=i}^D {j\choose i}g_i
\]
直接二项式反演
\[
g_i=\sum_{j=i}^D (-1)^{j-i}{j\choose i}f_j
\]
下标从0没问题,变一下:
\[
g_i=\sum_{j=0}^D (-1)^{j-i}\dfrac {j!}{i!(j-i)!}f_j
\]
整理
\[
\dfrac {g_i}{i!}=\sum_{j=0}^D \dfrac{(-1)^{j-i}\times j!f_j}{(j-i)!}
\]
reverse一下,右边又直接NTT
最终答案:
\[
\sum_{i=n-2m+1}^D g_i
\]
你觉得肯定做不了,\(n\le 1e9\)啊,但是考虑一些边界情况:
- \(n <2m\)答案为0
- \(n-2m+1>D\)答案为\(D^n\)
所以如果用多项式算法的条件是
\[
n\ge2m\\n-2m+1\le D=1e5\\
\]
多项式的maxn开\(1<<18\)就行了。
代码真的懒得写就是套套板子调调参。
【题解】CTS2019珍珠(二项式反演+卷积)的更多相关文章
- [CTS2019]珍珠——二项式反演
[CTS2019]珍珠 考虑实际上,统计多少种染色方案,使得出现次数为奇数的颜色数<=n-2*m 其实看起来很像生成函数了 n很大?感觉生成函数会比较整齐,考虑生成函数能否把n放到数值的位置,而 ...
- 题解-CTS2019 珍珠
题面 CTS2019 珍珠 有 \(n\) 个在 \([1,d]\) 内的整数,求使可以拿出 \(2m\) 个整数凑成 \(m\) 个相等的整数对的方案数. 数据范围:\(0\le m\le 10^9 ...
- LOJ3120 CTS2019 珍珠 生成函数、二项式反演、NTT
传送门 题目大意:给出一个长度为\(n\)的序列\(a_i\),序列中每一个数可以取\(1\)到\(D\)中的所有数.问共有多少个序列满足:设\(p_i\)表示第\(i\)个数在序列中出现的次数,\( ...
- 【CTS2019】珍珠【生成函数,二项式反演】
题目链接:洛谷 pb大佬说这是sb题感觉好像有点过fan...(我还是太弱了) 首先,设$i$这个数在序列中出现$a_i$次,要求$\sum_{i=1}^D[a_i \ mod \ 2]\leq n- ...
- 洛谷 P5401 - [CTS2019]珍珠(NTT+二项式反演)
题面传送门 一道多项式的 hot tea 首先考虑将题目的限制翻译成人话,我们记 \(c_i\) 为 \(i\) 的出现次数,那么题目的限制等价于 \(\sum\limits_{i=1}^D\lflo ...
- [LOJ3119][CTS2019|CTSC2019]随机立方体:组合数学+二项式反演
分析 感觉这道题的计数方法好厉害.. 一个直观的思路是,把题目转化为求至少有\(k\)个极大的数的概率. 考虑这样一个事实,如果钦定\((1,1,1),(2,2,2),...,(k,k,k)\)是那\ ...
- 【题解】[HAOI2018]染色(NTT+容斥/二项式反演)
[题解][HAOI2018]染色(NTT+容斥/二项式反演) 可以直接写出式子: \[ f(x)={m \choose x}n!{(\dfrac 1 {(Sx)!})}^x(m-x)^{n-Sx}\d ...
- LOJ3119 CTS2019 随机立方体 概率、容斥、二项式反演
传送门 为了方便我们设\(N\)是\(N,M,L\)中的最小值,某一个位置\((x,y,z)\)所控制的位置为集合\(\{(a,b,c) \mid a = x \text{或} b = y \text ...
- LOJ3119. 「CTS2019 | CTSC2019」随机立方体 二项式反演
题目传送门 https://loj.ac/problem/3119 现在 BZOJ 的管理员已经不干活了吗,CTS(C)2019 和 NOI2019 的题目到现在还没与传上去. 果然还是 LOJ 好. ...
随机推荐
- 04使用harbor配置私仓
安装harbor之前,需要安装好Python,Docker,DockerCompose.Python需要2.7以上的版本,Docker需要1.10以上的版本:Docker Compose 需要1.6. ...
- Session机制在页面间保持Cookie——大街网
解决Cookie有效期,页面间Cookie传递 解決大规模,长期有效采集. 之前做一个项目,要采集招聘网站的职位信息,智联,拉钩,中华英才,BOOS,大街网,写完了前4个,大街网数据加载方式是AJAX ...
- AFNetworkingErrorDomain 错误
AFNetworking and POST Request I'm getting this response in error.userInfo while making a POST reques ...
- poj 3675 Telescope (圆与多边形面积交)
3675 -- Telescope 再来一题.这题的代码还是继续完全不看模板重写的. 题意不解释了,反正就是一个单纯的圆与多边形的交面积. 这题的精度有点搞笑.我用比较高的精度来统计面积,居然wa了. ...
- HDU 1071
题意:就是求给你一个抛物线的三个点,第一个给定的点是抛物线的顶点,让你求直线p2p3与抛物线的定积分 思路:因为题目条件给了顶点,所以直接用抛物线的顶点式去求. 本弱弱数学太差.还得复习一下公式 #i ...
- 如何读取redis中的key值中的结果
redis的值有5种类型,不同的类型有不同的命令来获取: 字符直接 get key 队列 左端弹出一个元素 LPOP key 哈希 HGET key field 集合 SMEMBERS key 返回 ...
- POJ 2778 DNA Sequence (ac自动机+矩阵快速幂)
DNA Sequence Description It's well known that DNA Sequence is a sequence only contains A, C, T and G ...
- 最短路算法(floyed+Dijkstra+bellman-ford+SPFA)
最短路算法简单模板 一.floyed算法 首先对于floyed算法来说就是最短路径的动态规划解法,时间复杂度为O(n^3) 适用于图中所有点与点之间的最短路径的算法,一般适用于点n较小的情况. Flo ...
- WPF 元素裁剪 Clip 属性
本文介绍如何在 WPF 使用 Clip 裁剪元素 在 WPF 的 UIElement 提供了 Clip 属性,这个属性默认是空,但是如果设置了这个属性就会对元素进行裁剪 这个属性是一个 Geometr ...
- linux 一个使用整页的 scull: scullp
为了真实地测试页分配, 我们已随其他例子代码发布了 scullp 模块. 它是一个简化的 scull, 就像前面介绍过的 scullc. scullp 分配的内存量子是整页或者页集合: scullp_ ...