【XSY3147】子集计数 DFT 组合数学】的更多相关文章

题目大意 给定一个集合 \(\{1,2,\ldots,n\}\),要求你从中选出 \(m\) 个数,且这 \(m\) 个数的和是 \(k\).问方案数 \(\bmod 998244353\) \(0\leq k<n<998244353,m\leq n\) 题解 先不考虑选的数的个数的限制. 显然答案的 OGF 为 \[ F(x)=\prod_{i=0}^{n-1}(1+x^i) \] 考虑答案的式子 \[ \begin{align} ans&=\frac{1}{n}\sum_{i=0}…
BZOJ_4517_[Sdoi2016]排列计数_组合数学 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 行…
[BZOJ2425][HAOI2010]计数(组合数学) 题面 BZOJ 洛谷 题解 很容易的一道题目. 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开始比目标小. 对于长度小于当前数的个数,我们可以默认它们有前导零就行了. #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define ll long long ll C…
[BZOJ2111][ZJOI2010]排列计数(组合数学) 题面 BZOJ 洛谷 题解 就是今年九省联考\(D1T2\)的弱化版? 直接递归组合数算就好了. 注意一下模数可以小于\(n\),所以要存一下乘了几个零才行. #include<iostream> #include<cstdio> using namespace std; #define ll long long #define MAX 1000100 #define ls (u<<1) #define rs…
题目传送门 题目描述 .(是质数喔~) 输入格式 一行两个整数N,K. 输出格式 一行为答案. 样例 样例输入: 3 2 样例输出: 样例说明 假设原集合为{A,B,C} 则满足条件的方案为:{AB,ABC},{AC,ABC},{BC,ABC},{AB},{AC},{BC} 数据范围与提示 对于100%的数据,1≤N≤16:0≤K≤N: 题解 我也不知道为什么看到这道题就像到了组合数学和容斥,别问我为什么. 好叭-既然你这么可爱……那就…… 其实,我感觉叭……这种什么什么集合的题,要是你一秒想不…
传送门 组合数学简单题. Ans=(nm)∗1Ans=\binom {n} {m}*1Ans=(mn​)∗1~(n−m)(n-m)(n−m)的错排数. 前面的直接线性筛逆元求. 后面的错排数递推式本蒟蒻竟然推出来了. 首先说说为什么Ans=(nm)∗1Ans=\binom {n} {m}*1Ans=(mn​)∗1~nnn-mmm的错排数. 考虑首先选出mmm个排列正确的数有(nm)\binom {n} {m}(mn​)种选法. 然后剩下的n−mn-mn−m个数因为有严格的大小关系相当于只需要保证…
题目传送门 题目描述 称一个1,2,...,N的排列${P}_{1}$,${P}_{2}$,...,${P}_{N}$是Magic的,当且仅当2≤i≤N时,${P}_{i}$>${P}_{\frac{i}{2}}$.计算1,2,...N的排列中有多少是Magic的,答案可能很大,只能输出模P以后的值. 输入格式 输入文件的第一行包含两个整数n和p,含义如上所述. 输出格式 输出文件中仅包含一个整数,表示计算1,2,⋯, N的排列中, Magic排列的个数模p的值. 样例 样例输入: 20 23…
传送门 dp妙题啊. 我认为DZYODZYODZYO已经说的很好了. 强制规定球的排序方式. 然后就变成了一个求拓扑序数量的问题. 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0,w=1; char ch=getchar(); while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();} while(isdigit(ch))ans=(ans<…
原题题意也就是给的数的全排列小于原数的个数. 我们可以很容易的想到重复元素的排列个数的公式. 但是我们发现阶乘的话很快就会爆long long啊(如果您想写高精请便) 之后我就尝试质因数分解....但是遗憾的是太蒻了,没有成功,还是爆了.20分惨惨.最后也没有找出来哪里错了. 最后蒟蒻只好参考题解了..... 之后我们再一考虑,会发现其实我们不需要重复元素排列个数的公式,我们只需要按照组合数的思想做即可. 假设我们现在有m个位置可以摆放,我们先放0,个数就是\(C_m^{cnt[0]}\),之后…
传送门 解题思路 设\(f[i][j]\)表示填了\(i\)个白色,\(j\)种彩色的方案数,那么显然\(j<=i\).考虑这个的转移,首先可以填一个白色,就是\(f[i][j]=f[i-1][j]*(n-i+1)\).第二种情况是填一个彩色,这里有一点需要注意,不能直接用组合数,这样的话会有重复,我们可以强行安排一个顺序,这种颜色的第一个被变成了白色,第二个就直接跟在上一种彩色的后面,这样就可以做到不重不漏了,那么第二个转移就是\(f[i][j]=f[i][j-1]*C(n*k-(i+(j-1…