BZOj 3208 食物 生成函数+广义二项式定理
曾经搞过几天的生成函数,也没做几道题,后来放弃了,今天讲了生成函数和背包问题的结合,趁着脑子清醒整理一下;
题目描述:
明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!
我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西。理所当然的,你当然要帮他计算携带N件物品的方案数。
他这次又准备带一些受欢迎的食物,如:蜜桃多啦,鸡块啦,承德汉堡等等
当然,他又有一些稀奇古怪的限制:
每种食物的限制如下:
承德汉堡:偶数个
可乐:0个或1个
鸡腿:0个,1个或2个
蜜桃多:奇数个
鸡块:4的倍数个
包子:0个,1个,2个或3个
土豆片炒肉:不超过一个。
面包:3的倍数个
注意,这里我们懒得考虑明明对于带的食物该怎么搭配着吃,也认为每种食物都是以‘个’为单位(反正是幻想嘛),只要总数加起来是N就算一种方案。因此,对于给出的N,你需要计算出方案数,并对10007取模。
输入样例1
1
输出样例1
1
输入样例2
5
输出样例2
35
数据范围
对于40%的数据,1<=N<=100000;
对于所有数据,1<=n<=10^500;
对于小数据范围的,我们显然可以用dp的背包问题处理,那么对于本题这么大的范围,我们该怎么处理呢,这就要用生成函数搞一下了;
我们讲每一个要求编号;
对于1.偶数个:生成函数是1+$x^2$+$x^4$+$x^6$+$x^8$+...=$\frac{1}{1-$x^2$}$
对于2:1+x;
对于3:1+x+$x^2$=$\frac{1+$x^3$}{1-x}$;
算了我搞不了博客园的公式,还是搞图片吧;
来自ppt,其实每一个式子都很好推导;
对于式子七等,我们可以采取先求多项式的逆元,再将其化简的方法会比较方便;
那么这个题目就是让我们求f(x)的第n-1项,为什么是n-1呢,因为分子上的x相当于一个位移的作用;
那么我们探讨一下(1-x)-4的第[n]项系数怎么求;有两种思路;
第一种:广义二项式定理;
对于负数的情况,如下;
那么答案十分显然,我们将其展开,就是C(3,n+2)
第二种思路:对于这个母函数的第n项的系数,相当于不定方程x1+x2+x3+...+xn=4的非负整数解的个数,
这个问题可以用组合数学中的插板法解决,答案也为C(3,n+2);
注意:这里的n是已经减过1的n;
转载于:https://www.cnblogs.com/Tyouchie/p/11188353.html
BZOj 3208 食物 生成函数+广义二项式定理相关推荐
- bzoj3028 食物 生成函数+广义二项式定理
首先我们有一些函数推收敛式的套路. (这些是知名伪证,结论是对的,但是证明过程是胡扯)比如对于y=1+x+x2y=1+x+x^2y=1+x+x2 ,我们知道xy=x+x2+x3xy=x+x^2+x^3 ...
- bzoj 3208 食物(生成函数)
先推一下生成函数 承德汉堡:偶数个 1 + x 2 + x 4 + x 6 + . . . . . . = 1 1 − x 2 1+x^2+x^4+x^6+...... =\frac{1}{1-x^2 ...
- BZOJ 3028: 食物 [生成函数 隔板法 | 广义二项式定理]
3028: 食物 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 497 Solved: 331 [Submit][Status][Discuss] ...
- [BZOJ4001] [TJOI2015] 概率论 [期望计数] [卡特兰数打表 / 生成函数广义二项式定理]
[Link\frak{Link}Link] 预备结论们 卡特兰数 Cn=(2nn)−(2nn±1)C_n={2n\choose n}-{2n\choose n\pm1}Cn=(n2n)−(n±12 ...
- bzoj 3028 食物——生成函数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3028 把式子写出来,化一化,变成 x / ((1-x)^4) ,变成几个 sigma 相乘的 ...
- bzoj 3028: 食物(母函数+广义二项式定理)
3028: 食物 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 717 Solved: 502 [Submit][Status][Discuss] ...
- 生成函数(常见幂级数、广义二项式定理、生成函数的应用)
文章目录 生成函数 引言 定义 有关幂级数的有用事实 形式幂级数 幂级数的和.积 广义二项式定理 常见的生成函数 使用生成函数解决计数问题 不定方程的解的个数 完全背包问题的方案数 有顺序的背包问题的 ...
- 黑暗爆炸OJ 3028. 食物 生成函数
传送门 文章目录 题意: 思考 题意: 思考 考虑将每个条件转换成生成函数: (1)f1(x)=1+x2+...=11−x2(1)f_1(x)=1+x^2+...=\frac{1}{1-x^2}(1) ...
- 关于生成函数和二项式定理
二项式定理与生成函数 一.二项式定理 二项式定理 ∀ \forall ∀ x , y x , y x,y ∈ \in ∈ R , n ∈ Z , n \in Z, n∈Z, 均有 ( x + y ) ...
最新文章
- Deep Learning 学习随记(三)续 Softmax regression练习
- 分屏如何保持运行状态_摊铺机熨平板如何保持稳定的工作状态?
- pytorch dropout_手把手带你使用字符级RNN生成名字 | PyTorch
- zabbix图表出现中文乱码
- Swaks - SMTP界的瑞士军刀
- 生成模型和判别模型的区别
- 光流 | OpenCV中的光流有关函数
- opencv4 图像特征匹配_概述 | 全景图像拼接技术全解析
- python 碎片图像拼接_python实现图像拼接
- 学习笔记--asp.net主题和外观(转自msdn,仅为自己学习存储和有意读者使用)
- 当攻击者采用新型逃避技术——“域遮蔽” 企业该如何应对?
- typedef struct引起的结构体问题
- bootstrap 响应式布局
- 66岁比尔盖茨离婚!27年前与下属恋爱修成正果,现在“无法共同成长”,分割8000亿财产...
- windows10使用mklink命令给C盘软件搬家
- 15个Python游戏小项目
- 下载Django中文官方文档
- 基于xlsx-populate实现的前端埋点导出
- python怎么获取向量中非零元素的行号
- 关于vscode中输入的中文变繁体的问题
热门文章
- 用起 Arduino IDE 2.0版本
- 建筑造型的九大设计手法,建筑人必知
- python通过outlook发送邮件_python使用两种发邮件的方式smtp和outlook示例
- 公钥密码/非对称密码:RSA、ElGamal、Diffie Hellman?LBC计算过程
- C#参数列表中的this(扩展方法)
- 使用pyinstaller对python程序打包
- Java汉字排序(3)按笔划排序
- 网络规划设计师上午真题及解析(2020)
- 风讯 4.0之前所有版本通杀拿SHELL 0day
- 下狠招解除WinXP中IE被劫持的方法