不知道第多少次 四
A
$\prod\limits_{S\subseteq U}\sum\limits_S i=\prod i^{\sum\limits_{S\subseteq U}[\sum\limits_Sj=i]}$,指数可以 01 背包求出。
注意指数可能太大,欧拉定理降幂即可。
B
记当前喜好位置 $x$ 的人有 $a_x$ 个。
把每个人向其能住的房间连边,问题变为检测这张二分图有没有完美匹配,使用霍尔定理,
这张二分图存在完美匹配,当且仅当人的任意一个子集连向的房间数不少于这个子集的大小,
即 $\forall[l,r]\subseteq[1,n-d],k(r-l+1+d)\ge\sum\limits_{i=l}^ra_i\Leftrightarrow kd\ge\sum\limits_{i=l}^ra_i-k$,即 $\max\{\sum\limits_{i=l}^ra_i-k|[l,r]\subseteq[1,n-d]\}\le kd$。
问题变为单点修改,求 $a_i-k$ 的最大子段和,线段树。
C
设 $f_{u,i}$ 表示以 $u$ 为根,DFS 序最大的点为 $i$ 的连通块的最大权值,
注意到第二维中所有没有限制的点本质相同,所以第二维只有本质不同的 $O(m)$ 个点。
考虑转移,显然有 $f_{u,k}\gets\max\{f_{u,k},f_{u,i}+f_{v,k}\}$,其中 $i$ 与 $v$ 不冲突。朴素枚举 $i,k$,转移复杂度 $O(m^2)$。
注意到只有最大的 $f_{u,i}$ 到各个 $f_{u,k}$ 的转移有用,于是 $O(m)$ 找出最大的 $f_{u,i}$,再 $O(m)$ 转移到各个 $f_{u,k}$ 即可。
D
结论:设一个局面中 $\texttt{11}$ 不重叠地出现了 $a$ 次,$\texttt 0$ 出现了 $b$ 次,则这个局面 $(a,b)$ 的答案为 $a+b\choose a$。
于是本质不同的局面只有 $n^2$ 种,每种局面的答案乘上出现次数之和就是答案,只需统计每种局面的出现次数。
设 $f_{i,j,k,1/0}$ 表示令 $[1,i]$ 形成局面 $(j,k)$,且往后加一个 $\texttt 1$ 后能 / 不能形成一个新的 $\texttt{11}$ 的方案数,朴素转移即可。