
计数问题
文章平均质量分 89
huanghongxun
这个作者很懒,什么都没留下…
展开
-
某基础的组合问题
城市A、B间有规整的N*M的方格网络,且A、B分别为网络的左下角和右上角,现有一车从A到B,且只能向右或向上移动,求有多少条可能的移动路径?答案对P取模。对于20%的数据,n,m≤5n,m\leq 5 对于50%的数据,n,m≤103n,m\leq 10^3 对于70%的数据,n,m≤106,p为质数n,m\leq 10^6,p为质数 对于100%的数据,n,m≤106,p≤109+7n,m\原创 2016-03-30 13:03:23 · 411 阅读 · 0 评论 -
BZOJ 4558|JLOI 2016|SHOI 2016|方|容斥原理
题面有毒。。poisonous poi!poi!poi! 注意斜着的正方形也是要算的。如果没有删除点,总的方案数显然是∑i=1min{n,m}i(n−i+1)(m−i+1)modp \sum_{i=1}^{\min\{n,m\}} i(n-i+1)(m-i+1) \mod p i表示有i种斜着的正方形,(n-i+1)表示以(i,k)为左上角的正方形数目,(m-i+1)表示k的数目。接下来考虑每原创 2016-04-28 00:30:38 · 3938 阅读 · 0 评论 -
BZOJ 1016 JSOI 2008 巨额奖金 最小生成树计数
最小生成树有多少个。注意到最小生成树中选了相同权值的边多少条是不变的。有kruskal可知。 因此考虑在求出最小生成树后枚举每种权值的边。 然后所有情况乘起来即可。#include <cstdio>#include <cstring>#include <vector>#include <algorithm>#define FOR(i,j,k) for(i=j;i<=k;++i)#def原创 2016-04-17 23:56:06 · 860 阅读 · 0 评论 -
HDU 5651 xiaoxin juju needs help 组合数
由于错过了bc的registering只能在这里发发题解了。。给定一个字符串可自由打乱字母顺序,求能组成的回文串个数。 首先回文串对称的,所以只考虑一半就好了。 然后如果有多个字母出现奇数次那肯定答案为0。 再然只有一个有奇数次就拿一个放中间即可。 最后答案就是n2!pa!pb!⋯pz! \frac{\frac{n}{2}!}{p_a!p_b!\cdots p_z!} 其中pxp_x表示原创 2016-03-26 21:51:45 · 715 阅读 · 0 评论 -
BZOJ 4517|SDOI 2016|排列计数|错排公式|组合数学
求满足恰好m个数字使其元素和位置序号不同的全排列的个数。对于简单的错排问题,全部数字序号不同的排列数字个数定为D(n)D(n)。 长度为N的数列,元素1有n-1种放法,对于剩下的n-1个元素,如果元素1放到了位置k,那么元素k放在1,那么剩下的即为D(n−2)D(n-2),否则D(n−1)D(n-1)。 求得D(n)=(n−1)[D(n−2)+D(n−1)]D(n)=(n-1)[D(n-2)+D原创 2016-04-28 10:23:51 · 884 阅读 · 0 评论 -
BZOJ 3456 城市规划 NTT 生成函数计数 ***
求n个点的有标号简单连通图个数。令 f(n)f(n)表示有n个点的有标号简单连通图个数 g(n)g(n)表示有n个点的有标号简单图个数。所有可能的边一共有en=C2n=n(n−1)2e_n=C_n^2=\frac{n(n-1)}{2}种情况,即从n个点中选2个点连边。 所以简单无向图的个数,就是选边的种类数,即g(n)=C0en+C1en+⋯+Cenen=2eng(n)=C_{e_n}^0+C原创 2016-03-28 22:36:41 · 932 阅读 · 0 评论 -
CodeForces 438E The Child And Binary Tree NTT模板 生成函数应用
求有多少个二叉树使每个点权值均在给定集合C中而且权值和为令fsf_s表示总权值为s的合格二叉树个数。 于是有 f0=1fs=∑w∈C∑ifi×fs−w−i\begin{align}&f_0=1\\&f_s=\sum_{w\in C}\sum_i f_i\times f_{s-w-i}\end{align} 发现右边和卷积有点像。 于是令 gk=∑ifi×fk−i g_k=\sum_i原创 2016-03-22 14:20:04 · 1203 阅读 · 0 评论 -
BZOJ 3992 SDOI 2015 序列统计 NTT 生成函数 计数 原根
给定元素在[0,m)内的整数集合S,求有多少个长度为n的数列满足所有元素属于S且mod m下的积为x。由于m是质数,所以元素的积利用原根可转化为和。 即∏ei∈seqei≡xmodm\prod_{e_i\in seq} e_i \equiv x\mod m 由于原根的幂可以一一表示[0,m)内的数,所以 令hi,hx满足ghimodm=ei,ghxmodm=xh_i,h_x满足g^{h_i}原创 2016-03-27 22:17:40 · 991 阅读 · 0 评论 -
BZOJ 1856 SCOI 2010 字符串 卡特兰数
出入栈问题。。。 ans=(n+mn)−(n+mn+1)ans=\binom{n+m}{n}-\binom{n+m}{n+1} 于是直接算就好了。。没用分解因数的,于是150ms。。。#include <cstdio>#include <cstdlib>typedef long long ll;const ll mod = 20100403;ll quick_pow(ll a, ll b原创 2016-03-27 12:07:24 · 522 阅读 · 0 评论 -
BZOJ 4001 TJOI 2015 概率论 卡特兰数 生成函数计数
求随机有根二叉树的叶节点数的期望。令fif_i表示有ii个节点的二叉树的个数,显然f0=1f_0=1,且有递归定义 fi=∑i=0i−1fifn−i−1 f_i=\sum_{i=0}^{i-1}f_if_{n-i-1} 令gk=∑ki=0fifk−ig_k=\sum_{i=0}^{k}f_if_{k-i} 那么数列gg的生成函数即G(x)=F2(x)G(x)=F^2(x) 又fi=gi−1原创 2016-03-24 23:35:56 · 2370 阅读 · 0 评论 -
BZOJ 1485 HNOI 2009 有趣的数列 卡特兰数 线性筛法分解质因数
普通筛法应该是O(nlnn)O(n\ln n)的? 线性筛法才能过了。#include <cstdio>#define FOR(i,j,k) for(i=j;i<=k;++i)typedef long long ll;const int N = 2000001;ll qpow(ll a, ll b, ll p) { ll c = 1; for (; b; b /= 2, a原创 2016-03-30 15:21:46 · 840 阅读 · 0 评论 -
BZOJ 2822 AHOI 2012 树屋阶梯 卡特兰数 高精度
用N个矩形填充N阶楼梯的方案数。假设我们已知0..N−10..N-1阶的楼梯的方案数f(0..n−1)f(0..n-1)。 现在要推导到N。 我们枚举第N层的矩阵长度,有右端点必为右下顶点处,将1~N-1层分为2部分,即下方存在空位的部分(长度为i)与下方不存在空位(长度为N-i-1)(即被第N层矩阵填充)的部分。显然不会存在矩阵跨左右两个部分。 然后下方不存在空位的情况即为f(N−i−1)f原创 2016-03-30 21:31:46 · 1041 阅读 · 0 评论 -
UVALive 7962|Gym 101201K|Tournament Wins|概率期望|组合数求对数
DescriptionYou are one of 2k2^k competitors invited to enter a single elimination tournament. You are ranked rrth in the published rankings. Furthermore, you know that in any match between two players原创 2017-12-09 20:31:44 · 736 阅读 · 0 评论