3028: 食物 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 497  Solved: 331[Submit][Status][Discuss] Description 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险! 我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数. 他这次又准备带一些受欢迎的食物,如:蜜桃多啦,鸡块啦,承德汉堡等等 当然,他又有一些稀奇古怪的限制: 每种…
题目传送门: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+......=\fr…
题目描述 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些受欢迎的食物, 如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食物的限制如下: 承德汉堡:偶数个 可乐:0个或1个 鸡腿:0个,1个或2个 蜜桃多:奇数个 鸡块:4的倍数个 包子:0个,1个,2个或3个 土豆片炒肉:不超过一个. 面包:3的倍数个 注意,这里我们懒得考虑明明对…
题意 链接 Sol 生成函数入门题. 对每个物品分别列一下,化到最后是\(\frac{x}{(1-x)^4}\) 根据广义二项式定理,最后答案是\(C_{(N - 1) + 4 - 1}^{4-1} = C_{n+2}^3\) N = int(input()) print(int((N + 1) * (N + 2) * N / 6) % 10007)…
总结一下广义二项式定理. 食物 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些受欢迎的食物,如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制,每种食物的限制如下: 承德汉堡:偶数个 可乐:0个或1个 鸡腿:0个,1个或2个 蜜桃多:奇数个 鸡块:4的倍数个 包子:0个,1个,2个或3个 土豆片炒肉:不超过一个. 面包:3的倍数个 注意,这里…
Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output Devu wants to decorate his garden with flowers. He has purchased n boxes…
排列组合问题 之前没有学过隔板法,随便学习了一下 其实挺好理解的 附上题解: 先只考虑一种球:因为有n个盒子每个盒子可以放任意多球,还可以空出来任意多球.所以可以考虑为n+1个盒子,最后一个盒子里面是题中没放的球.由于盒子可以空出来,所以将隔板与球一起排列 即在隔板和球组成的n+a列中 选出任意a个位置放隔板的话,就可以实现题目要求的效果!(0个或任意多个).两种球所以C(n+a,a)*C(n+b,b). 之后还需要注意精度问题 一直不是很注意这种事情,mark 最后一个点需要用到 unsign…
题意: 把K个不超过N的非负整数加起来,使它们的和为N,有多少种方法? 隔板法...不会的可以买一本高中数学知识清单...给高中班主任打个广告.... 隔板法分两种...一种是不存在空集 = C(n-1,m-1)...一种是存在空集 = C(n+m-1, m-1) 这题就是存在空集的解法...因为可以是0 .只会快速幂写组合数的我瑟瑟发抖...赶紧翻了紫书... #include <iostream> #include <cstdio> #include <sstream&g…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1509 思路: 直接去解可行的方法有点麻烦,所以应该用总的方法去减去不可行的方法,有点像容斥原理. 将加长棒分成4个部分,允许为0,其中一部分表示剩余.这个就是经典的隔板法了. 这是百度百科上的一个例子,看完之后应该就理解隔板法的做法了吧. 这道题目也就是要将L分成4部分,允许为空,所以先L+4,表示每个部分至少为1,所以总共有L+4-1的空隙可以插板,我们需要插3个板,…
很裸的隔板法. 引用一下维基上对隔板法的解释: 现在有10个球,要放进3个盒子里 ●●●●●●●●●● 隔2个板子,把10个球被隔开成3个部份 ●|●|●●●●●●●●.●|●●|●●●●●●●.●|●●●|●●●●●●.●|●●●●|●●●●●.●|●●●●●|●●●●.●|●●●●●●|●●●....... 如此类推,10个球放进3个盒子的方法总数为 n个球放进k个盒子的方法总数为 问题等价于求的可行解数,其中为正整数. **如果允许有空盒子**: 现在有10个球,要放进3个盒子里,并允许空…
题目传送门 题意:给出n,m,k,用m个0到n-1的数字凑出k,问方案数,mod一个值. 题目思路: 首先如果去掉数字范围的限制,那么就是隔板法,先复习一下隔板法. ①k个相同的小球放入m个不同的盒子,每个盒子不为空的种类数:k-1个空隙中插入m-1个板子,C(k-1, m-1) ②k个相同的小球放入m个不同的盒子,可以允许有的盒子为空种类数:我们再加上m个球,按照①式不为空求解,因为分割完后,每个盒子减去1,就是当前问题的解,即:C(k-1+m, m-1); 而现在有了n这个限制,也就是说之前…
题目链接:https://vjudge.net/problem/HDU-4045 Machine scheduling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1907    Accepted Submission(s): 702 Problem Description A Baidu’s engineer needs to an…
求逆元 https://blog.csdn.net/baidu_35643793/article/details/75268911 int inv[N]; void init(){ inv[] = ; ; i < N; ++ i){ inv[i] = (mod - 1ll * (mod / i) * inv[mod % i] % mod) % mod; } } 组合递推 牛客暑期集训第六场C题解 对于A,M个取i个排列,如果我们要使A(M,i)->A(M,i+1)只需要A(M,i) * (M-…
1102 - Problem Makes Problem As I am fond of making easier problems, I discovered a problem. Actually, the problem is 'how can you make n by adding k non-negative integers?' I think a small example will make things clear. Suppose n=4 and k=3. There a…
题意: Count the number of distinct sequences a1, a2, ..., an (1 ≤ ai) consisting of positive integers such that gcd(a1, a2, ..., an) = xand . As this number could be large, print the answer modulo 109 + 7. 解法: 变成1+1+...+1=y/x ,用隔板法就知道有2^(y/x-1)个解 但是考虑到…
LINK:牛牛与序列 (牛客div1的E题怎么这么水... 还没D难. 定义一个序列合法 当且仅当存在一个位置i满足 $a_i>a_,a_j<a_$且对于所有的位置i,$1 \leq a_i\leq k$ 人话解释:一个合法序列 每个数字都在1~k之间 且有两个相邻数字是递增关系两个相邻数字是递减关系. 发现我们枚举某两个位置递增递减再进行计数会重复 而且很难减掉重复方案.这个不能代表元容斥. 考虑总方案-不合法方案.发现不合法方案就两种不增,不降. 显然不增翻转一下就是不降 考虑求出不增的方…
题面传送门 题意: 给出 \(n,p\),求有多少 \(n\) 位数 \(X=a_1a_2a_3\dots a_n\) 满足: 该 \(n\) 位数不含前导零 \(a_i \leq a_{i+1}\) \(X\) 为 \(p\) 的倍数. 答案对 \(998244353\) 取模. \(1 \leq n \leq 10^{18}\),\(1 \leq p \leq 500\). CSP 之前做的了,隔了好久才把题解补了... 本题的突破口在于怎样处理 \(a_i \leq a_{i+1}\) 这…
首先 1+x+x^2+x^3+...+x^∞=1/(1-x) 对于题目中的几种食物写出生成函数 (对于a*x^b , a表示方案数 x表示食物,b表示该种食物的个数) f(1)=1+x^2+x^4+...+x^∞=1/(1-x^2) f(2)=1+x f(3)=1+x+x^2 f(4)=x+x^3+x^5+...+x^∞=x/(1-x^2) f(5)=1+x^4+x^8+...+x^∞=1/(1-x^4) f(6)=1+x+x^2+x^3 f(7)=1+x f(8)=1+x^3+x^6+...+…
显然构造出生成函数:则有f(x)=(1+x2+x4+……)·(1+x)·(1+x+x2)·(x+x3+x5+……)·(1+x4+x8+……)·(1+x+x2+x3)·(1+x)·(1+x3+x6+……). 化为有限,则有f(x)=x(1+x)2·(1+x+x2)·(1+x+x2+x3)/(1-x2)2·(1-x3)·(1-x4)=x·(1+x+x2)·(1+x)/(1-x)2·(1-x3)·(1-x2)=x·(1+x)/(1-x)3·(1-x2)=x/(1-x)4. 广义二项式定理暴算.则有f(…
传送门 生成函数模板题. 我们直接把每种食物的生成函数列出来: 承德汉堡:1+x2+x4+...=11−x21+x^2+x^4+...=\frac 1{1-x^2}1+x2+x4+...=1−x21​ 可乐:1+x=1−x21−x1+x=\frac{1-x^2}{1-x}1+x=1−x1−x2​ 鸡腿:1+x+x2=1−x31−x1+x+x^2=\frac{1-x^3}{1-x}1+x+x2=1−x1−x3​ 蜜桃多:x+x3+x5+...=x(1+x2+x4+...)=x1−x2x+x^3+x…
关于(1+x+x2+x3+x4+...)^k的第i项系数就是c(i+k−1,k−1)的证明对于第i项,假设为5x^5=x^0*x^5x^5=x^1*x^4x^5=x^2*x^3........也就是说从k个这样(1+x+x^2+x^3+x^4+...)的式子中,每个式子取出一项出来让其相乘,得到的x的指数为5.所取出来看项,设为y,y的取值范围从0....(也就是数字1,即x^0)....到无限大,则归于(y1+y2+y3+.....+yk)=i这个方程有多少组解其中0<=yi<=i通俗理解就…
http://www.lydsy.com/JudgeOnline/problem.php?id=3028 好吧,这是我第一道生成函数的题目. 先搞出各种食物的生成函数: 汉堡:$1+x^2+x^4+...=\frac{1}{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=\fr…
题面:BZOJ传送门 题目让我们求这些物品在合法范围内任意组合,一共组合出$n$个物品的方案数 考虑把每种食物都用生成函数表示出来,然后用多项式乘法把它们乘起来,第$n$项的系数就是方案数 汉堡:$1+x^{2}+x^{4}+x^{4}...=\frac{1}{1-x^{2}}$ 可乐:$1+x$ 鸡腿:$1+x+x^{2}$ 蜜桃:$x+x^{3}+x^{5}+x^{7}...=\frac{x}{1-x^{2}}$ 鸡块:$1+x^{4}+x^{8}+x^{12}..=\frac{1}{1-x…
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3028 题解:列出母函数乘起来化简之后再展开,用插板法即可. 代码: #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<iostream> #include<vector> #…
Description 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些受欢迎的食物, 如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食物的限制如下: 承德汉堡:偶数个 可乐:0个或1个 鸡腿:0个,1个或2个 蜜桃多:奇数个 鸡块:4的倍数个 包子:0个,1个,2个或3个 土豆片炒肉:不超过一个. 面包:3的倍数个 注意,这里我们…
把所有东西的生成函数搞出来. 发现结果是x*(1-x)^(-4) 然后把(1-x)^(-4)求逆,得到(1+x+x^2+...)^4 然后考虑次数为n的项前的系数,就相当于选任意四个非负整数构成n的方案数. 大概就是C(n+3,3) 前面还有一项是x,所以n--即可. 然后就A掉了. #include <cstdio> #include <cstring> #define ll long long const int inv=1668; const int md=10007; in…
不管怎么求似乎都不太好求,我们试试生成函数.这个东西好神奇.生成函数的精华是两个生成函数相乘,对应 $x^{i}$ 前的系数表示取 $i$ 个时的方案数. 有时候,我们会将函数按等比数列求和公式进行压缩,这样会更方便. 首先,将所有物品的生成函数都列出来,发现所有式子的乘积为 $\frac{x}{(x-4)^{n}}$即 $x\times$$\frac{1}{(1-x)^4}$.依据麦克劳林展开,$\frac{1}{(1-x)^n}$的展开为 $\sum_{i=0}^{\infty}C_{n+i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4602 我们可以特判出n<= k的情况. 对于1<= k<n,我们可以等效为n个点排成一列,并取出其中的连续k个点.下面分两种情况考虑: 第一种情况,被选出的不包含端点,那么有(n–k−1)种情况完成上述操作,剩下未被圈的点之间还有(n–k−2)个位置,可以在每个位置断开,所以共2^(n−k−2) ∗(n−k−1)种方法. 第二种情况,即被选出的包含端点,那么有2种情况,并且剩余共(n–k−1…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3028 把式子写出来,化一化,变成 x / ((1-x)^4) ,变成几个 sigma 相乘的样子,用组合意义看一下第 n 项的系数,就是 n-1 的可以不选的划分,即 C( n-1+3,3 ) .为了高精度方便,化成 (n+2)*(n+1)*n/6 . 别忘了取模. 注意读入高精度数字的方法.错了几次之后只会一位一位地读了…… #include<iostream> #include<…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3028 式子很好推,详细可以看这篇博客:https://blog.csdn.net/wu_tongtong/article/details/78856565 所以就是要求 C(n+2,3) ,n 很大但是模数很小,可以用 Lucas 定理: 总觉得真的写了高精度和 Lucas 定理有点麻烦...而且还因为一处忘记取模 RE 了一次... 代码如下: #include<iostream> #…