题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3027 化式子到 ( \mul_{i=1}^{n}(1-x^(m[i]+1)) ) / (1-x)^n 之后就不会了. 其实把分子拿出来后的部分可以展开成一个式子,用组合意义可知 k 次项系数是 C( n-1+k,n-1 ) . 分子的那部分可以暴搜 2^n 种可能的项!一个项 k * x^y 对答案的贡献就是 k*( \sum_{i=L-y}^{R-y}C(n-1+i,n-1) ):考虑完…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3027 就是 (1+x+x2+...+xm[i]) 乘起来: 原来想和背包一样做,然而时限很短,数组也开不了很多,本来以为勉强一下也可以,后来突然发现不行... #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,m…
首先根据生成函数的套路,这个可以写成: \[ \prod_{i=1}^{n}(1+x^1+x^2+...+x^{c[i]}) \] 然后化简 \[ =\prod_{i=1}^{n}\frac{1-x^{c[i]+1}}{1-x} \] \[ =\prod_{i=1}^{n}\frac{1}{1-x}*(1-x^{c[i]+1}) \] \[ =(1+x^1+x^2+...)^n*\prod_{i=1}^{n}(1-x^{c[i]+1}) \] 位数过多所以只考虑有常数项的位,后面那个式子可以df…
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3027. 题目大意:有$n$种数,每种有$C_i$个,问你在这些数中取出$[l,r]$个,问你有多少种不同的取法,答案对2004取模. 数据范围:$n≤10$,$C_i≤10^6$,$1≤l<r≤10^7$. 我们不妨设$f(n)$表示不超过$n$的数的取法之和. 则答案显然为$f(r)-f(l-1)$,下面来推导f(x). 显然,$f(m)$等于多项式$\Pi_{i=1}^{n} \…
容斥 #include<cstdio> using namespace std; int a,b,n,m[15]; long long ans=0,mod=2004; long long C(int n,int m){ long long ans=1; for (int i=n; i>=n-m+1; i--) ans=ans*i%mod; return ans; } void dfs(int t,int lim,int cas){ if (lim<0) return; if (t&…
3027: [Ceoi2004]Sweet Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 71  Solved: 34 Description John得到了n罐糖果.不同的糖果罐,糖果的种类不同(即同一个糖果罐里的糖果种类是相同的,不同的糖果罐里的糖果的种类是不同的).第i个糖果罐里有 mi个糖果.John决定吃掉一些糖果,他想吃掉至少a个糖果,但不超过b个.问题是John 无法确定吃多少个糖果和每种糖果各吃几个.有多少种方法可以做这件事呢? I…
3027: [Ceoi2004]Sweet Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 135  Solved: 66[Submit][Status][Discuss] Description John得到了n罐糖果.不同的糖果罐,糖果的种类不同(即同一个糖果罐里的糖果种类是相同的,不同的糖果罐里的糖果的种类是不同的).第i个糖果罐里有 mi个糖果.John决定吃掉一些糖果,他想吃掉至少a个糖果,但不超过b个.问题是John 无法确定吃多少个糖果…
Portal Description 给出\(n(n\leq10),a,b(a,b\leq10^7)\)与\(\{c_n\}(c_i\leq10^6)\),求使得\(\sum_{i=1}^n x_i \in[a,b]\)且\(x_i\in[0,c_i]\)的方案数,对\(2004\)取模. Solution 定义\(f(m)\)表示"将不超过\(m\)个物品放入\(n\)个盒子,且第\(i\)个盒子中的物品数在\([0,c_i]\)范围内"的方案数.原问题就是求\(f(b)-f(a-1…
传送门 生成函数好题. 题意简述:给出n个盒子,第iii个盒子里有mim_imi​颗相同的糖(但不同盒子中的糖不相同),问有多少种选法可以从各盒子中选出数量在[a,b][a,b][a,b]之间的糖果. 思路:先对每个盒子构造出生成函数:1+x2+...+xmi=1−xmi+11−x1+x^2+...+x^{m_i}=\frac{1-x^{m_i+1}}{1-x}1+x2+...+xmi​=1−x1−xmi​+1​ 然后把所有盒子的生成函数乘起来:F(x)=∏i=1n(1−xmi+1)(1−x)n…
Description John得到了n罐糖果.不同的糖果罐,糖果的种类不同(即同一个糖果罐里的糖果种类是相同的,不同的糖果罐里的糖果的种类是不同的).第i个糖果罐里有 mi个糖果.John决定吃掉一些糖果,他想吃掉至少a个糖果,但不超过b个.问题是John 无法确定吃多少个糖果和每种糖果各吃几个.有多少种方法可以做这件事呢? Input 从标准输入读入每罐糖果的数量,整数a到b   John能够选择的吃掉糖果的方法数(满足以上条件) Output 把结果输出到标准输出(把答案模 2004 输出…
题意 从$0$到$n-1$的数字里可重复的取至多$m$个数的和等于$k$的方案数. 思路 显然的生成函数的思路为构造 $(1+x+x^{2}+...+x^{n-1})^{m}$ 那么$x^{k}$的系数即答案.等比数列求和后得到 $ \frac {(1-x^n)^m} {(1-x)^m}$ 对分子二项式展开得到 $(1-x^n)^m = \sum_{i=0}^m C_m^{i}(-1)^i * x^{n*i}$ 对分母根据泰勒展开得到 $(1-x)^{-m} = \sum_{j = 0}^{\i…
3997: [TJOI2015]组合数学 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 919  Solved: 664 Description 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走多少次才能把财宝全部捡完. Input 第一行为正整数T,代表数据组数. 每组数据第一行为正整数N,M代表网格图有…
Triple Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 847  Solved: 482[Submit][Status][Discuss] Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看:“是啊是啊!” 水神把斧头扔在一边,又拿起一个东西问: “这把斧头,是不是你的?” 樵夫看不清楚,但又怕真的是自己的斧头,只好又答:“是啊是…
瞎搞居然1A,真是吃鲸 n的范围只有聪明人能看见--建议读题3遍 首先看计数就想到生成函数,列出多项式A(x),然后分别考虑123 对于选一个的直接计数即可: 对于选两个的,\( A(x)^2 \),然后注意这里两个选一样的是不合法的,各出现了一次,所以减掉,然后这里是有顺序的,所以最后再除以2(就是(1,2)和(2,1)算两次): 对于选三个的,\( A(x)^3 \),然后去掉不合法的,设D(x)为每个斧头选两次的生成函数(也就是价格*2),然后A(x)*D(x)就表示前两个斧头重复选取的方…
承德汉堡:\( 1+x^2+x^4+...=\frac{1}{1-x^2} \) 可乐:\(1+x \) 鸡腿:\( 1+x+x^2=\frac{x^3-1}{x-1} \) 蜜桃多:\( 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{x^4-1}{x-1} \) 土豆片炒肉:\( 1+x \) 面包:\( 1+x^3+x^6+x^9+...=\fra…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2339 题意: 思路: i64 Pow(i64 a,i64 b,i64 mod){    i64 ans=1;    while(b)    {        if(b&1) ans=ans*a%mod;        a=a*a%mod;        b>>=1;    }    return ans;} i64 n,m;i64 g[N],f[N]; i64 exGcd(i…
3505: [Cqoi2014]数三角形 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 478  Solved: 293[Submit][Status] Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数m和n. Output 输出一个正整数,为所求三角形数量. Sample Input 2 2 Sam…
题解:n为树的节点数,d[ ]为各节点的度数,m为无限制度数的节点数. 则               所以要求在n-2大小的数组中插入tot各序号,共有种插法: 在tot各序号排列中,插第一个节点的方法有种插法: 插第二个节点的方法有种插法:                                       ......... 另外还有m各节点无度数限制,所以它们可任意排列在剩余的n-2-tot的空间中,排列方法总数为   根据乘法原理:              #include…
Claris的剑 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 375  Solved: 213[Submit][Status][Discuss] Description Claris想要铸一把剑,这把剑必须符合他的审美,具体来说,我们可以把这把剑的不同地方的宽度看成一个序列,这个序列要满足以下条件:1.每个元素都是正整数(你的宽度不可能是负数吧)2.每个元素不能超过M,太宽了如果比Claris身高还高怎么办(你可以认为Claris的身高就是M)…
题面 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是稳定的 满足条件的序列可能很多,序列数对 10^9+7 取模. Input 第一行一个数 T,表示有 T 组数据. 接下来 T 行,每行两个整数 n.m. T=500000,n≤1000000,m≤1000000 Output 输出 T 行,每行一个数,表示求出的序列数 Sample Inpu…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
[BZOJ 3771] Triple(FFT+生成函数) 题面 给出 n个物品,价值为别为\(w_i\)且各不相同,现在可以取1个.2个或3个,问每种价值和有几种情况? 分析 这种计数问题容易想到生成函数. 设生成函数\(A(x)=\sum_{i=1}^{n} x^{w_i}\),指数为价值,系数为选的方案数.A表示每种物品取1个的方案数.同理,我们可以写出每种物品取2个和3个的生成函数. \(B(x)=\sum_{i=1}^{n} x^{2w_i}\) \(C(x)=\sum_{i=1}^{n…
题目描述: bzoj luogu 题解: 生成函数ntt. 显然这种二叉树应该暴力薅掉树根然后分裂成两棵子树. 所以$f(x)= \sum_{i \in c} \sum _{j=0}^{x-c} f(i)*f(x-i-j)$ 这是个不好看的卷积. 所以我们再引入$c$的生成函数$G$,那么有$$F(x)=1+G(x)*F(x)*F(x)$$ 注意常数项,因为正常$f(0)=1$但是$G(0)=0$,所以要人为配常数. 然后$F= \frac{1 \pm \sqrt{1-4G}} {2G} = \…
3456: 城市规划 题意:n个点组成的无向连通图个数 以前做过,今天复习一下 令\(f[n]\)为n个点的无向连通图个数 n个点的完全图个数为\(2^{\binom{n}{2}}\) 和Bell数的推导很类似,枚举第一个cc的点的个数 \[ 2^{\binom{n}{2}} = \sum_{i=1}^n \binom{n-1}{i-1} f(i) 2^{\binom{n-i}{2}} \] 整理后 \[ \frac{2^{\binom{n}{2}}}{(n-1)!} = \sum_{i=1}^…
传送门 题意:三种颜色,规定使用每种颜色次数$r,g,b$,给出一个置换群,求多少种不等价着色 $m \le 60,\ r,g,b \le 20$ 咦,规定次数? <组合数学>上不是有生成函数做法吗.... 生成函数貌似可以和背包$DP$互相转换来着 然后就做出来了 每种置换求循环,$d[i][j][k][l]$表示前$i$个循环有了$j$个红$k$个绿$l$个蓝 遇到一点小问题,一直输出$0$ 看了黄学长的代码发现他加了一个恒等置换.... 想了一会儿才明白题目给的不是置换群,因为少了一个恒…
题面: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…
[BZOJ 3625] [Codeforces 438E] 小朋友的二叉树 (DP+生成函数+多项式开根+多项式求逆) 题面 一棵二叉树的所有点的点权都是给定的集合中的一个数. 让你求出1到m中所有权值为i的二叉树的个数. 两棵树不同当且仅当树的形态不一样或者是树的某个点的点权不一样 分析 设\(c(i)\)表示数值i是否在集合中.\(f(i)\)表示权值为i的二叉树的个数.那么 \[f(n)=\sum_{i=1}^n c(i) \sum_{j=0}^{n-i} f(j)f(n-i-j)\] 其…
题目大意 自从明明学了树的结构,就对奇怪的树产生了兴趣...... 给出标号为 1 到 N 的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为 N(0<N<=1000),接下来 N 行,第 i+1 行给出第 i 个节点的度数 Di,如果对度数不要求,则输入 -1 Output 一个整数,表示不同的满足要求的树的个数,无解输出 0 做法分析 这题需要了解一种数列: Purfer Sequence 我们知道,一棵树可以用括号序列来表示,但是,一棵…
4403: 序列统计 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 328  Solved: 162[Submit][Status][Discuss] Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取模的结果. Input 输入第一行包含一个整数T,表示数据组数.第2到第T+1行每行包含三个整数N.L和R,N.L和R的意义如题所述. Output 输出包含T…
知道prufer序列就能写...就是求个可重集的排列...先判掉奇怪的情况, 然后答案是(N-2)!/π(d[i]-1)! --------------------------------------------------------------------------- #include<cstdio> #include<algorithm> #include<cstring>   using namespace std;   typedef long long l…