
组合数学
ACM败犬
这个作者很懒,什么都没留下…
展开
-
2018 ccpc final(补题):G. Pastoral Life in Stardew Valley
题目大意:在一个n * m的土地,要在一个子矩形内放稻草人,稻草人必须被稻草包围,问有几种方法?解法:可以将子矩形的长和宽分开考虑,因为长和宽分别选定可以唯一确定一个子矩形,注意到对于一个n * m的土地,最多有中间(n - 2) * (m - 2) 这么大的范围可以放稻草人,从这个点入手可以推出用这么大范围放稻草人的方案数:(n -1 ) * (n - 2) * (m - 1) * (m - ...原创 2019-05-05 13:24:10 · 898 阅读 · 0 评论 -
Codeforce 961 G. Partitions(第二类斯特林数 + 思维)
题目大意:定义一个集合 SSS 的权值 W(S)W(S)W(S):∣S∣∑i∈Sw[i]|S|\sum_{i \in S}w[i]∣S∣∑i∈Sw[i]将 n 个元素的集合划分成 k 个子集,对所有的划分情况,对这些子集和求W(S)W(S)W(S)之和最容易想到的解法:枚举每一个元素w[i]w[i]w[i]的贡献,那么只需要枚举这个元素所在集合的大小即可。可以得到一个答案式子:re...原创 2019-09-26 21:49:26 · 338 阅读 · 0 评论 -
Codeforce 932 E. Team Work(第二类斯特林数)
题目大意:让你求∑i=1nC(n,i)∗ik\sum_{i = 1}^nC(n,i)*i^k∑i=1nC(n,i)∗ik第二类斯特林数可以用[n]0,[n]1,[n]2,..,[n]p[n]_0,[n]_1,[n]_2,..,[n]_p[n]0,[n]1,[n]2,..,[n]p写出 npn^pnp[n]k=n∗(n−1)∗(n−2)∗..∗(n−k+1)[n]_k = n *...原创 2019-09-26 10:52:30 · 172 阅读 · 0 评论 -
洛谷 P4091:[HEOI2016/TJOI2016]求和(第二类斯特林数 + NTT)
由于 当j>i时,S(i,j)=0当 j > i时,S(i,j) = 0当j>i时,S(i,j)=0;∴∑i=0n∑j=0iS(i,j)∗2j∗(j!)\sum_{i = 0}^n\sum_{j = 0}^iS(i,j) * 2^j *(j!)∑i=0n∑j=0iS(i,j)∗2j∗(j!) = ∑i=0n∑j=0nS(i,j)∗2j∗(j!)\sum_{i = 0}^...原创 2019-09-25 18:30:41 · 196 阅读 · 0 评论 -
2019 南昌网络赛 H. The Nth Item(齐次线性递推 + 快速幂分块打表)
这是二阶齐次递推式,一个做法是用矩阵快速幂,复杂度为 O(8∗q∗log(109))O(8 * q * \log (10^9))O(8∗q∗log(109)),T飞。对于齐次线性递推式,可以推导它的通项公式:令 F(n)=xnF(n) = x^nF(n)=xn:F(n)−3∗F(n−1)−2∗F(n−2)=0F(n) - 3 * F(n - 1) - 2 * F(n - 2) = 0F(...原创 2019-09-24 11:37:26 · 160 阅读 · 0 评论 -
HDU 1521:排列组合(指数型生成函数 + 暴力拆解)
题目大意:有 n 种物品,每种物品有一个数量,让你从中选一些物品构造 m 排列,输出排列数量。参考:https://wenku.baidu.com/view/846bb51bce84b9d528ea81c758f5f61fb7362892.html直接构造生成函数:(1+x+x22!+...+x1aa1!)∗(1+x+x22!+...+x2aa2!)∗..∗(1+x+x22!+...+xna...原创 2019-09-23 00:24:38 · 578 阅读 · 0 评论 -
POJ 3734 :Blocks(指数型生成函数)
题目大意:有一排砖头要上色,有四种颜色,其中两种用的数量必须是偶数,另外两种不限制用的数量,四种颜色的都有无限量的存储,求涂色方案。题解:指数型生产函数裸题#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod = 10007;ll fpow(ll a,ll b) { ...原创 2019-09-22 19:25:46 · 252 阅读 · 0 评论 -
牛客挑战赛 32 :D 放物品(错排问题 + 分类讨论)
直接枚举每一对点,计算贡献以及有效贡献次数。会发现,贡献是一个等差数列的求和形式,可以预处理出来然后求和。贡献次数这里要分类讨论,设当前处理点对是 i,j1:i 占了 j 的位置,j也占了 i 的位置。贡献次数:d[n][0]2:i 占了 j 的位置,或 j 占了 i 的位置。贡献次数:d[n][1]3:i 不占 j 的位置,j 也不占 i 的位置。贡献次数:d[n][2]d[n]...原创 2019-09-21 10:45:41 · 209 阅读 · 0 评论 -
2019 沈阳网络赛 E. Gugugu's upgrade schemes(贝尔数 | Touchard同余)
贝尔数:https://www.cnblogs.com/yuyixingkong/p/4480349.html利用Touchard同余性质,Bn+p=(Bn+Bn+1)mod p(p∈prime)B_{n + p} = (B_n + B_{n + 1}) \mod p (p \in prime)Bn+p=(Bn+Bn+1)modp(p∈prime)当 n 较小时可以用贝尔数的计算式...原创 2019-09-19 23:42:06 · 495 阅读 · 0 评论 -
牛客练习赛50(牛客1080F):F.tokitsukaze and Another Protoss and Zerg(组合数学 + NTT + 启发式)
题目链接:https://ac.nowcoder.com/acm/contest/1080/F链接:https://ac.nowcoder.com/acm/contest/1080/F来源:牛客网题目描述还记得校赛的"Protoss and Zerg"吗?(https://ac.nowcoder.com/acm/contest/303/H)这是另一个版本。---------------...原创 2019-08-24 11:53:23 · 396 阅读 · 0 评论 -
Codeforce 559 C. Gerald and Giant Chess(计数类DP + 递推预处理阶乘逆元)
题目大意:给你一个h∗wh * wh∗w 的棋盘,棋盘上n个黑点,其余的都是白点。每次你只能向下走或向右走,问从(1,1) 走到 (h,w) 不经过黑点的路径有多少条,答案对 1e9+71e9 + 71e9+7取模。题解: h和w非常大,但黑点最多只有2000个,所以入手点在黑点。(1,1) -> (h,w) 的总路径数 是C(h + w - 2,h - 1),扣掉经过至少一个黑点的路径...原创 2019-08-11 16:19:02 · 286 阅读 · 0 评论 -
Codeforce 1228 E.Another Filling the Grid(容斥原理)
题目大意:有一个 n∗nn * nn∗n 的矩阵,每个格子可以填 1−k1 - k1−k 这 k 种值,要使得每一行每一列都有 1,填数的方案数是多少。有一个 nlognn \log nnlogn 的做法,先保证每一列有 1,每一列有 1 的方案数很好求,但每一列都 1 并不能保证每一行有 1。可以用总的方案数减去有些行没有 1 的个数,这个过程可以用容斥原理。设有 iii 行 没有 1...原创 2019-10-05 16:58:08 · 314 阅读 · 0 评论