第三十加加加次+第三十一次

A

转移是线性的,所以答案一定可以表示为 $\sum\limits_{i=1}^nk_{1,i}a^{x_{1,i}}b^{y_{1,i}}f(i,0)+\sum\limits_{i=1}^mk_{2,i}a^{x_{2,i}}b^{y_{2,i}}f(0,i)$。

观察可知,$k_{1,i}$ 即 $f(i,0)$ 转移到 $f(n,m)$ 的路径条数,即 ${n+m-i-1\choose m-1}$,

而 $x_{1,i},y_{1,i}$ 即 $f(i,0)$ 转移到 $f(n,m)$ 往右、下走的步数,即 $m,n-i$。

$k_{2,i},x_{2,i},y_{2,i}$ 同理。

B

第 $i$ 个右部点连接第 $x_i,y_i$ 个左部点,则 $x_i,y_i$ 至少选择其一,

现有 $n$ 个这样的限制,需要选择若干个点来满足这些限制,要求选择的点代价和最小。

建新图,连接所有 $x_i,y_i$,要求相邻两点至少选择其一,问题变为基环树最小权点覆盖。

C

$$ \begin{aligned} &\sum\limits_{i=1}^n(-1)^{\sum\limits_{j=1}^md(ij)}\\ =&\sum\limits_{i=1}^n(-1)^{\sum\limits_{j=1}^m[d(ij)\equiv 1\pmod 2]}\\ =&\sum\limits_{i=1}^n(-1)^{\sum\limits_{j=1}^m[ij\in S]}\\ =&\sum\limits_{i=1}^n(-1)^{\left\lfloor\sqrt{\frac m{p_i}}\right\rfloor} \end{aligned} $$

其中 $S$ 为完全平方数集,$p_i=\dfrac i{\max\limits_{j|i,j\in S}j}=\min\limits_{j|i,j\in S}\dfrac ij$,

对每个 $j\in S$ 更新其倍数 $i$ 的 $p_i$,复杂度 $O(\sum\limits_{i=1}^n\dfrac n{i^2})=O(n)$。

D

考虑不是环咋做,容易单调栈求出。

考虑复制一份,断环成链,发现跨越中点的点对不好统计,

环可以任意平移,于是把最大值平移到首端,

此时跨越中点的点对一定不跨越后 $n$ 个数首端的这个最大值,

即跨越中点的点对在中点右侧的点一定是后 $n$ 个数首端的这个最大值,

于是统计有多少中点左侧的点能和这个最大值组成符合条件的点对,容易单调栈求出。

F

显然召开 party 的城市是这 $c$ 个人的 LCA。

考虑二分答案 $k$,从源点向这 $c$ 个人连流量为 $k$ 的边,从每个人向其能带的特产连流量为 $1$ 的边,从每种特产向汇点连流量为 $1$ 的边,

若最大流为 $c\times k$ 则答案 $k$ 合法。

把每个人拆成 $k$ 个点,则问题变为判断这个二分图是否存在完美匹配,

由霍尔定理,二分图存在完美匹配,当且仅当左部点中任意 $k$ 个点与右部点中至少 $k$ 个点相连,

枚举人的子集 $S$,设其与 $T_S$ 种特产相连,

则这些人至多拆成 $T_S$ 个点,每个人至多拆成 $\left\lfloor\dfrac{T_S}{|S|}\right\rfloor$ 个点,即答案至多为 $\left\lfloor\dfrac{T_S}{|S|}\right\rfloor$,

所以答案为 $\min\limits_{S}\left\lfloor\dfrac{T_S}{|S|}\right\rfloor$,问题变为链并数颜色,树剖套分块套 bitset 维护之。

posted @ 2023-08-26 21:32  5k_sync_closer  阅读(3)  评论(0编辑  收藏  举报  来源