XSY2666
题意
有\(n\)种颜色的球,第i种有\(a_i\)个。设\(m=\sum a_i\)。你要把这\(m\)个小球排成一排。有\(q\)个询问,每次给你一个\(x\),问你有多少种方案使得相邻的小球同色的对数为\(x\)。\(n\leq 10000,m\leq 200000\)
做法
一脸的容斥对吧
先不考虑严格的同色,对于第\(i\)种颜色,分为\(b_i\)块,单就已经分好的情况,有:\[\frac{(\sum b_i)!}{\prod (b_i!)}\]
然后来做分块的过程,\(f_{i,j}\)表示前\(i\)中颜色,分成\(j\)块,然后把\(\frac{1}{\prod(b_i!)}\)也顺便统计:\[f_{i,j}=\sum\limits_{k=1}^j f_{i-1,j-k}{a_i-1\choose k-1}\frac{1}{k!}\]
这个可以分治fft做
然后再乘上本来上面那一坨,记\(g_i=f_{n,i}\times i!\)
然后容斥一下\(ans_i=\sum\limits_{j=1}^i (-1)^{i-j}g_j{m-j\choose i-j}\),这个画下图就好了,不知道为啥要归纳
这里的\(ans_i\)指严格分\(i\)块的答案
XSY2666的更多相关文章
- 【XSY2666】排列问题 DP 容斥原理 分治FFT
题目大意 有\(n\)种颜色的球,第\(i\)种有\(a_i\)个.设\(m=\sum a_i\).你要把这\(m\)个小球排成一排.有\(q\)个询问,每次给你一个\(x\),问你有多少种方案使得相 ...
随机推荐
- permission denied (publickey)问题的解决和向github添加ssh key
使用ssh key这种方式进行clone ,pull github上面的项目,使用 git clone或者git pull origin master出现permission denied (publ ...
- ATL的GUI程序设计(1)
from:http://blog.titilima.com/atlgui-1.html 第一章 不能免俗的"Hello, World!" 在这一章里,就像所有的入门级教程一样,我也 ...
- BZOJ1257 [CQOI2007]余数之和 (数论分块)
题意: 给定n, k,求$\displaystyle \sum_{i=1}^nk\;mod\;i$ n,k<=1e9 思路: 先转化为$\displaystyle \sum_{i=1}^n(k- ...
- tar命令详解及使用实例
tar命令 [root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 …. 参数: -c :创建压缩文件 -x :解开压缩文件 -t :查看tar包里面的文件! 上面3个参数只能 ...
- linux下命令的全称,方便记忆(转)-修改补充版
su:Swith user 切换用户,切换到root用户 cat: Concatenate 串联(cat(Concatenate)命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容, ...
- 一键安装php5.6.40脚本(LAMP环境)
#!/bin/bash #安装依赖软件 yum -y install libxml2-devel curl-devel libjpeg libjpeg-devel libpng libpng-deve ...
- 关于ETH/BTC区块的监控
此次我写的是一个小型的shell, 链接钉钉的机器人, 使用过的应该会比较娴熟的了,下面就简述一下把 主要的功能就是, 当发现本地数据库区块跟网络上的区块差距相差较大的时候就代表, 数据同步有问题, ...
- Pch文件预编译
因为项目用到Pch文件链接宏变量,因而稍作研究怎样使用,define宏变量其实并不合适 ,static const才最适合 Pch文件听说是上古世纪存在的文件,主要是用来全局预编译文件统一在一个出口, ...
- 普通台式机装centos7系统
一.环境 台式机配置如下: 配置:CPU -i5-7400 内存:8G 硬盘:1T 原装系统: win7 64x 使用软碟通刻录U盘做系统启动盘,教程: 教你用UltraISO+U盘制作启动盘和安装各 ...
- Arm开发板+Qt学习之路
从2015.11.13日开始接触arm开发板,开始学习Qt,到现在已经四个月零17天了,从一个拿到开发板一无所知的小白,到现在能够在开发板上进行开发,有付出有收获. 之前一直没有时间将这个过程中的一些 ...