ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【题解】CTS2019珍珠

2019-07-25 21:53:41  阅读:328  来源: 互联网

标签:珍珠 dfrac sum CTS2019 choose 题解 2m 2i 2j


【题解】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\)个颜色,后面是序列的生成方式。
\[ f_i={D\choose i}[x^n]n!( {e^x+e ^{-x}})^i{(e^x)}^{D-i} \]
展开\(^i\)
\[ f_i={D\choose i}[x^n]n!\sum_{j=0}^i{i\choose j}{(e^x)}^{D+2j-2i} \]
由于是求\([x^n]\)所以
\[ f_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 {f_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\)就行了。

代码真的懒得写就是套套板子调调参。

标签:珍珠,dfrac,sum,CTS2019,choose,题解,2m,2i,2j
来源: https://www.cnblogs.com/winlere/p/11247179.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有