LINK:小Z的礼物 太精髓了 我重学了一遍min-max容斥 重写了一遍按位或才写这道题的. 还是期望多少时间可以全部集齐. 相当于求出 \(E(max(S))\)表示最后一个出现的期望时间. 根据min-max容斥 显然有 \(E(max(S))=\sum_{T\subseteq S}(-1)^{|T|+1}E(min(T))\) 对于这道题 要求出所有的T 直接\(2^{cnt}\)枚举不太现实. 但是我们仍要对每个集合求出其概率. 考虑从矩阵上进行dp来进行压缩状态 那么因为一个格子的选…
题面 传送门 题解 好迷-- 很明显它让我们求的是\(Max(S)\),我们用\(Min-Max\)容斥,因为\(Min(S)\)是很好求的,只要用方案数除以总方案数算出概率,再求出倒数就是期望了 然而如果爆搜枚举子集的话复杂度是\(O(2^{cnt})\)的 发现总共的方案数只有\(2*n*m-n-m\)种,而且\(n\)非常小,我们可以考虑插头\(dp\) 设\(f_{i,S,k}\)表示做到了第\(i\)列,插头的状态为\(S\),覆盖方案数为\(k\)时的方案总数,并且这个里面已经考虑了…
题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq S}^{ }(-1)^{|T|-1}E(min(T))$ 那么只需要知道每个子集中最早得到的物品的期望时间即可得出答案. 对于每个子集,最早得到的物品的期望时间就是一次选择能得到这个子集中元素的概率的倒数. 用一次选择能得到这个子集中的元素的方案数除上总方案数(每次共有$2*n*m-n-m$种选择方…
题面传送门 本来说要找道轮廓线 \(dp\) 的题目刷刷来着的?然后就找到了这道题. 然鹅这个题给我最大的启发反而不在轮廓线 \(dp\),而在于让我新学会了一个玩意儿叫做 Min-Max 容斥. Min-Max 容斥大概讲的就是这样一件事情:对于任意集合 \(S\),\(\max(S)=\sum\limits_{T\subseteq S,T\ne\varnothing}(-1)^{|T|-1}\min(T)\),因为这个式子包含容斥系数 \((-1)^{|T|-1}\) 和集合的 \(\min…
[UOJ#422][集训队作业2018]小Z的礼物(min-max容斥,轮廓线dp) 题面 UOJ 题解 毒瘤xzy,怎么能搬这种题当做WC模拟题QwQ 一开始开错题了,根本就不会做. 后来发现是每次任意覆盖相邻的两个,那么很明显就可以套\(min-max\)容斥. 要求的就是\(max(All)\),而每个集合的\(min\)是很好求的. 如果直接暴力枚举集合复杂度就是\(2^{cnt}cnt\). 仔细想想每个子集我们要知道的是什么,只需要知道子集大小来确定前面的容斥系数,还需要知道覆盖子集…
这是第100篇博客,所以肯定是要水过去的. 首先看到这种形式的东西首先min-max容斥一波,设\(f_{c,s}\)表示在\(c\)只咕咕中,经过\(s\)秒之后并没有喂饱任何一只的概率. \[ \begin{aligned} Ans&=\sum_{i=1}^n(-1)^{i-1}\binom{n}{i}ans_i \\ ans_c&=\sum_{i\ge 1}\sum_{s=0}^i\binom{i}{s}(\frac{n-c}{n})^{i-s}(\frac{c}{n})^sf_{c…
题目链接: [集训队作业2018]蜀道难 题目大意:给出一棵$n$个节点的树,要求给每个点赋一个$1\sim n$之内的权值使所有点的权值是$1\sim n$的一个排列,定义一条边的权值为两端点权值差的绝对值,要求对于任意两点间的路径要么路径上所有点的点权单调,要么存在路径上的第三个点到这两个点的路径分别单调(即两点间路径先单调递增再单调递减或先单调递减再单调递增).求出整棵树最小边权和,并支持动态插入点之后完成上述问题. 前言: 这道题综合性比较强且代码量及细节非常多,是迄今为止我做过最神仙的…
传送门 \(d=1\),那么任何时刻都可以\(k\)个复读机的一种,答案为\(k^n\) \(d>1\),可以枚举某个复读机的复读次数(必须是\(d\)的倍数),然后第\(i\)个复读时间为\(x_i\),那么答案为\(n!\sum\limits_{d|x_i,\sum x_i=n} \prod \frac{1}{x_i!}\),这个显然可以暴力背包生成函数,因为有\(d|x_i\)的限制,那么可以套用单位根反演,单个复读机的生成函数为\(\sum_{i=0}^{\infty}[d|i]\fra…
#422. [集训队作业2018]小Z的礼物 min-max容斥 转化为每个集合最早被染色的期望时间 如果有x个选择可以染色,那么期望时间就是((n-1)*m+(m-1)*n))/x 但是x会变,中途统计答案会很麻烦 所以把x记录到状态里! 轮廓线DP f[i][j][s][x]到了(i,j),轮廓线选择情况是s,x个选择可以染色的所有方案的(-1)^(|T|+1)的和 枚举(i,j)选不选,x的增长直接用s和(i,j)位置计算即可. 相当于每个T在x的位置上被考虑了恰好一次. #include…
T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) 考虑\(min-max容斥\).\(max\{S\}=\sum_{S \subset T}(-1) ^{|T|-1}min\{T\}\) 此时我们要求的变为了\(min\{T\}\),即\(T\)中至少有一个元素被选择的期望. 我们知道当\(T\)中元素被选择的概率为\(P\)时,其期望为\(\f…