【bzoj3028】 食物 生成函数+隔板法
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3028
这题的推导很妙啊,裸的推母函数的题。
我们首先构造出每种食物的母函数:
汉堡:$1+x^2+x^4+……=\frac{1}{1-x^2}$
可乐:$1+x=\frac{1-x^2}{1-x}$
鸡腿:$1+x+x^2=\frac{1-x^3}{1-x}$
蜜桃:$x+x^3+x^5+......=\frac{x}{1-x^2}$
鸡块:$1+x^4+x^8+......=\frac{1}{1-x^4}$
包子:$1+x+x^2+x^3=\frac{1-x^4}{1-x}$
炒肉:$1+x=\frac{1-x^2}{1-x}$
面包:$1+x^3+x^6+......=\frac{1}{1-x^3}$
然后,我们将这八个母函数乘起来,得到$\frac{x}{(1-x)^4}$,所求答案为$\frac{x}{(1-x)^4}$的n次项系数。
考虑如何求这个东西,不难发现,$\frac{x}{(1-x)^4}=x \times (\frac{1}{1-x})^4$,然后又因为$\frac{1}{1-x}=\sum_{i=0}{\infty} x^i$,可以想象成有一个物品集合A,其中每种权值恰好有1个,那么$\frac{x}{(1-x)^4}$的n次项系数相当于从4个A集合中各取出1个,并且这4个物品的权值和为n的方案数,这个东西通过插板法简单推导下可以推出其答案为$\binom{n+2}{3}$。
由于n很大,读入的时候先取个模再求答案即可。
代码很短,推导稍长....
#include<bits/stdc++.h>
#define MOD 10007
#define INV6 1668
using namespace std;
char c[]={}; int main(){
scanf("%s",c);
int len=strlen(c),n=;
for(int i=;i<len;i++) n=(n*+c[i]-'')%MOD;
printf("%d\n",n*(n+)%MOD*(n+)%MOD*INV6%MOD);
}
【bzoj3028】 食物 生成函数+隔板法的更多相关文章
- BZOJ 3028: 食物 [生成函数 隔板法 | 广义二项式定理]
3028: 食物 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 497 Solved: 331[Submit][Status][Discuss] De ...
- BZOJ3028食物——生成函数+泰勒展开
题目描述 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些 ...
- BZOJ3028: 食物(生成函数)
题意 链接 Sol 生成函数入门题. 对每个物品分别列一下,化到最后是\(\frac{x}{(1-x)^4}\) 根据广义二项式定理,最后答案是\(C_{(N - 1) + 4 - 1}^{4-1} ...
- BZOJ3028 食物 和 LOJ6261 一个人的高三楼
总结一下广义二项式定理. 食物 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数 ...
- CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)
Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...
- vijos1060 隔板法
排列组合问题 之前没有学过隔板法,随便学习了一下 其实挺好理解的 附上题解: 先只考虑一种球:因为有n个盒子每个盒子可以放任意多球,还可以空出来任意多球.所以可以考虑为n+1个盒子,最后一个盒子里面是 ...
- How do you add? UVA - 10943(组合数的隔板法!!)
题意: 把K个不超过N的非负整数加起来,使它们的和为N,有多少种方法? 隔板法...不会的可以买一本高中数学知识清单...给高中班主任打个广告.... 隔板法分两种...一种是不存在空集 = C(n- ...
- 51Nod 1509 加长棒(隔板法)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1509 思路: 直接去解可行的方法有点麻烦,所以应该用总的方法去减去不可行 ...
- uva10943(隔板法)
很裸的隔板法. 引用一下维基上对隔板法的解释: 现在有10个球,要放进3个盒子里 ●●●●●●●●●● 隔2个板子,把10个球被隔开成3个部份 ●|●|●●●●●●●●.●|●●|●●●●●●●.●| ...
随机推荐
- vue组件介绍
https://www.cnblogs.com/Leo_wl/p/5863185.html vue.js说说组件 什么是组件:组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重 ...
- 20155210 2016-2017-2 《Java程序设计》第7周学习总结
20155210 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 时间的度量: GMT(Greenwich Mean Time)时间:现在不是标准时间 世界时 ...
- js把一个数组插入到另一个数组的指定位置
var arr1 = ['a', 'b', 'c']; var arr2 = ['1', '2', '3']; // 把arr2 变成一个适合splice的数组(包含splice前2个参数的数组) a ...
- 2018.10.14 NOIP训练 圣诞树(简单dp)
传送门 sbDP题. 曾经一直TLE不知道为什么. 这次发现输入有坑233. 代码
- tp5月统计的bug
月统计求和时 本月第一天没有统计到
- 一次性选中word中全部Table
Sub 批量修改表格() Dim tempTable As Table Application.ScreenUpdating = False If ActiveDocument.ProtectionT ...
- SpringMVC零碎笔记
在web.xml里可以配置webapp的默认首页,格式如下: <welcome-file-list> <welcome-file>index.html</welcome- ...
- (转载)从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文是入门篇.笔者认为亲自动手写代码做实验,是最有效最扎实的学习途径,而搭建开发环境是学习一门新技术最需要先学会的技能,是入门的前提. ...
- unlimited channel buffer in Go
channel buffer可以事先分配大小,但是这些是需要占用内存的,事先分配几G内存给一个channel很浪费资源的,所以怎样创建一个无限的channel buffer呢?比较naive的写法就是 ...
- JavaScript中Ajax的使用
AJAX全称为“Asynchronous javascript and XML”(异步javascript和XML),是指一种创建交互式网页应用的网页开发技术.通过在后台与服务器进行少量数据交换,AJ ...