Icefox的博客

生活不止眼前的苟且,还有诗和远方。

CF403D Beautiful Pairs of Numbers(计数,dp+组合数学)

首先做一个dp f[i][j]f[i][j]f[i][j]表示区间总长度为i,有j个区间,且任意两个区间的长度不同的方案数。两种转移:1、每个区间的长度都增加1,f[i][j]−>f[i+j][j]f[i][j]−>f[i+j][j]f[i][j]-&...

2018-06-23 21:14:08

阅读数 127

评论数 0

luogu4714 「数学」约数个数和(组合数学+miller_rabin判素数)

luogu6月月赛E。 当时绝对是脑抽了 其实O(wK)O(wK)O(wK)的暴力递推还是可以写的呀… 令n=∏pqiin=∏piqin=\prod p_i^{q_i} 我们发现可以分开讨论每一个pqiipiqip_i^{q_i},最后乘起来就好了,且只跟次数q有关 设f[k][q]f[...

2018-06-23 17:43:10

阅读数 110

评论数 0

Wannafly挑战赛18

https://www.nowcoder.com/acm/contest/129#question A.序列(组合数学) -2和0.5一样多,且都为偶数,枚举一下具体个数就好了 O(n)O(n)O(n) 考时ZZ了,不会跳了过去…很久以后才A掉gg B.随机数(矩阵快速幂) 设f[i]...

2018-06-22 23:09:24

阅读数 77

评论数 0

bzoj3622 已经没有什么好害怕的了(dp+容斥原理)

首先设a组糖果比药片大,b组药片比糖果大,然后要求a-b=K,a+b=n,显然有a=(n+K)/2 于是就是求恰好a组糖果比药片大的方案数。 我们dp处理出至少j组的”方案数” 首先把a,b数组均排序,处理出每个糖果i大于的药片个数w[i],然后f[i][j]表示前i个糖果,选出了j组符合条...

2018-06-20 17:20:42

阅读数 65

评论数 0

bzoj4710 [Jsoi2011]分特产(容斥原理+组合数学)

题目要求有0个人有0个。 我们枚举有i个人有0个来容斥,其余的人随意分,用插板法来计算方案数。 Ans=∑i=0n−1(−1)iCin∏j=1mCn−i−1aj+n−i−1Ans=∑i=0n−1(−1)iCni∏j=1mCaj+n−i−1n−i−1Ans=\sum\limits_{i=0}^{...

2018-06-20 08:18:13

阅读数 104

评论数 0

bzoj5306 [Haoi2018]染色(容斥原理+ntt)

一个不会数数的老年咸鱼选手的学习经历x 首先我很快的得到了一个式子:Cim∗n!(s!)i∗(n−is)!∗(m−i)n−isCmi∗n!(s!)i∗(n−is)!∗(m−i)n−isC_m^i*\frac{n!}{(s!)^i*(n-is)!}*(m-i)^{n-is} 但是我说不出它的意义...

2018-06-19 22:55:56

阅读数 111

评论数 0

bzoj5305 [Haoi2018]苹果树(组合数学)

首先n个点的这样生成的二叉树有n!种。 因此这就不再是一个期望问题,而是计数问题! 可能没逆元,烦躁qaq 考虑给每个点按生成顺序标号,我们来计算i->fa[i]这条边对答案的贡献。 我们枚举i的子树大小j,那么这条边就会被经过j*(n-j)次。 再考虑i子树内部形...

2018-06-15 21:09:07

阅读数 356

评论数 0

loj2540「PKUWC2018」随机算法(状压dp+组合数学)

设f[i][S]表示答案集合S大小为i,不可选的点的状态为S的方案数。 考虑在答案集合中再加入一个j来转移,本来还剩x个点可以选,选了j以后少了y个点可以选,那么这y个点可以随便放在排列的这x个位置之中,方案数为AyxAxyA_x^y。 复杂度O(2nn)O(2nn)O(2^nn) #inc...

2018-06-07 12:11:30

阅读数 399

评论数 0

loj6432「PKUSC2018」真实排名(线段树+组合数学)

分i有没有被选讨论一下就好了qaq 写了个线段树果然垫底了qaq #include <bits/stdc++.h> using namespace std; #define ll long long #define inf 0x3f3f3f3f #d...

2018-06-06 15:39:55

阅读数 293

评论数 0

bzoj4767 两双手(dp+容斥+组合数学)

在二维平面上,你一开始在(0,0),给定两个向量,问你有多少种不经过坏点的方式到达(x,y)。 对于每一个点都求出需要走几个向量1,几个向量2,显然是唯一的。如果不合法直接跳过。 然后就转化成了类似上一题的模型。dp+容斥+组合数学解决。 #include <bits/...

2018-06-01 14:29:58

阅读数 102

评论数 0

bzoj3782 上学路线(dp+容斥+组合数学+Lucas+CRT)

把终点也视为一个坏点的话,f[i]表示到达坏点i且不经过其他坏点的方案数。直接计算f[i]比较困难,考虑容斥。 可以通过组合数学方便的得到从一个点到另一个点的总方案数。那么我们可以再枚举经过的第一个坏点来减去不合法的方案。 这里算组合数需要Lucas定理,1019663265=3*5*6793...

2018-06-01 11:45:51

阅读数 83

评论数 0

bzoj4735 你的生命已如风中残烛(组合数学)

就是给定我们m个数,不是正数就是-1,把每一个正数-1,那么这m个数和为0,要求每一个前缀和都要>=0,问方案数。 我们再在末尾加一个-1,那么就是要求这m+1个数除了最后一个位置外,其余位置的前缀和均>=0.这m+1个数的环排列个数为m!,可以证明,...

2018-05-25 15:47:31

阅读数 140

评论数 0

bzoj5339 [TJOI2018]教科书般的亵渎(伯努利数)

可以发现结果就是求若干S(n,k)=∑i=1nikS(n,k)=∑i=1nikS(n,k)=\sum\limits_{i=1}^ni^k 可以用伯努利数快速计算,见:portal #include <cstdio> #include &amp...

2018-05-21 23:12:02

阅读数 201

评论数 0

51nod1228 序列求和(伯努利数+数学)

求S(n,k)=∑i=1nikS(n,k)=\sum\limits_{i=1}^ni^k 可以O(k2)O(k^2) 递推。 用伯努利数可以做到O(k)O(k) ∑i=1nik=1k+1∑i=1k+1Cik+1∗Bk+1−i∗(n+1)i\sum\limits_{i=1}^ni^k=\fra...

2018-05-02 09:04:37

阅读数 163

评论数 0

bzoj4517 [Sdoi2016]排列计数(错排+组合数学)

错排。 递推公式:Dn=(n−1)(Dn−1+Dn−2),D1=0,D2=1D_n=(n-1)(D_{n-1}+D_{n-2}),D_1=0,D_2=1 通项公式:Dn=n!∑k=2n(−1)kk!D_n=n!\sum\limits_{k=2}^n\frac{(-1)^k}{k!} 可以用容...

2018-04-28 13:38:06

阅读数 57

评论数 0

bzoj3027 [Ceoi2004]Sweet(生成函数+组合数学+爆搜)

首先我们可以写出每一种糖果的生成函数,然后写成闭形式,乘起来,就得到了 ∏i=1n(1−xmi+1)(1−x)n\frac{\prod\limits_{i=1}^n(1-x^{m_i+1})}{(1-x)^n} 答案就是xa...xbx^a...x^b的系数和。 上式的分子部分我们可以O(2...

2018-04-11 09:50:37

阅读数 120

评论数 0

bzoj2142 礼物(扩展Lucas+CRT)

给定n个物品,分给m个人,每个人拿到wi个礼物,问方案数mod P P不一定为质数首先我们把剩下的礼物也分给一个人 答案明显不变 w[++m]=n-w1-w2-…-wm 那么显然答案就是Cw1nCw2n−w1⋯Cwmn−w1−...−wm−1C_n^{w_1}C_{n-w_1}^{w_2}\cd...

2018-04-04 15:44:35

阅读数 126

评论数 0

bzoj3771 Triple(生成函数+FFT+组合数学)

首先1个的直接统计 将所有的数搞成一个生成函数,做一遍卷积搞出来选2个的答案 但是2个的存在选了两个相同的,或者选了一个排列,直接除2即可 然后生成函数卷两次统计选3个的答案 这里需要容斥一下,(选3个的答案-强行选了2个一样的*3+强行选了3个一样的*2)/6才是不考虑顺序、选不...

2018-04-02 11:55:02

阅读数 85

评论数 0

bzoj4001 [TJOI2015]概率论(生成函数)

我以为我不会忘记的qaq 还是写一写推导吧qaq,方便后人 首先设hn表示n个节点的二叉树的形态数 那么我们有hn=∑i=1n−1hi∗hn−1−i,h0=1,h1=1h_n=\sum\limits_{i=1}^{n-1}h_i*h_{n-1-i},h_0=1,h_1=1 写出hnh_n的...

2018-04-02 10:28:20

阅读数 116

评论数 0

bzoj1072 [SCOI2007]排列perm(状压dp+组合数学)

f[i][j]表示选了i状态的位置上的数,余数为j的方案数。 最后用排列组合的知识去一下重(除掉同一个数的顺序) 复杂度O(T∗2nm)O(T*2^nm)

2018-04-01 21:41:23

阅读数 82

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭