摘要:
前言 概率生成函数好像是个很厉害的东西啊……如果有掷骰(tou)子的问题似乎可以直接套板子的说…… 本篇文章全部都是抄《浅谈生成函数在掷骰子问题上的应用》(杨懋龙)这篇论文的 定义 我们定义一个形式幂级数$A(x)$,称它为离散随机变量$X$的概率生成函数,当且仅当对于$A(x)$的每一项$a_i$ 阅读全文
摘要:
题面 "传送门" 题解 不知道概率生成函数是什么的可以看看 "这篇文章" ,题解也在里面了 cpp //minamoto include define R register define fp(i,a,b) for(R int i=(a),I=(b)+1;iI; i) define go(u) fo 阅读全文
摘要:
题面 "传送门" 给定一个长度为$L$的序列$A$。然后每次掷一个标有$1$到$m$的公平骰子并将其上的数字加入到初始为空的序列$B$的末尾,如果序列B中已经出现了给定序列$A$,即$A$是$B$的子串,则停止, 求序列$B$的期望长度。$L ≤ 10^5$ 题解 不知道概率生成函数是什么的可以看看 阅读全文
摘要:
题面 "传送门" 题解 首先区间个数很少,我们考虑把所有区间离散化(这里要把所有的右端点变为$B_i+1$代表的开区间) 设$f_{i,j}$表示考虑到第$i$个学校且第$i$个学校必选,这个学校选择的数在离散后的第$j$个区间内,方案数是多少 怎么转移呢,我们考虑枚举上一个不在第$j$个区间的学校 阅读全文
摘要:
题面 "传送门" 题解 这居然是一道语文题? 首先不难看出,因为每一次相邻元素交换最多减少一个逆序对,所以至少$m$次交换就代表这个序列的逆序对个数为$m$ 我们考虑一下,假设现在已经放完了$i 1$个数,当放入第$i$个数的时候会对逆序对个数造成什么影响 如果第$i$个数放在最后,新增逆序对个数为 阅读全文
摘要:
题面 "传送门" 题解 ~~代码不就百来行么也不算很长丫~~ ~~虽然这题随机化贪心就可以过而且速度和正解差不多不过我们还是要好好学正解~~ 前置芝士 边分治 米娜应该都知道点分治是个什么东西,而边分治,顾名思义就是对边进行分治,即每次选出一条“子树中点的个数的最大值最小”的边,处理所有经过这条边的 阅读全文
摘要:
题面 "传送门" 题解 首先我们算出刚好有$k$对情侣的方案数 从$n$对情侣中选出$k$对,方案数为${n\choose k}$ 从$n$排座位中选出$k$排,方案数为${n\choose k}$ 情侣之间可以交换座位,方案数为$2^k$ 座位之间可以随便排列,方案数为$k!$ 然后我们还需要强制 阅读全文
摘要:
题面 "传送门" 题解 ~~我对生成函数一无所知~~ 我们设$F(x)$为斐波那契数列的生成函数,$G(x)$为答案的生成函数,那么容易得到递推关系 $$g_n=\sum_{i=0}^{n 1}f_ig_{n i}+f_n$$ 其中$g_0=0,g_1=1$ 那么写成生成函数的形式就是 $$G=FG 阅读全文
摘要:
题面 "传送门" 题解 去看 "$shadowice$" 巨巨写得前后缀优化建图吧 ~~话说我似乎连线段树优化建图的做法都不会~~ cpp //minamoto include define R register define ll long long define pb push_back def 阅读全文