HT-113-NOI 题解

\(\color{purple}\text{HT-113-NOI-A}\):给定序列 \(a_{1\sim n}\)\(q\) 次询问给出区间 \([l,r]\),求最大的 \(k\) 使得区间内每种颜色的出现次数均为 \(k\) 的倍数。\(n,m,a_i\le10^6\)

考虑所有颜色的出现次数的种类数为根号级别,使用莫队+链表求出这些数。考虑到 gcd 变化次数至多为 \(\log V\),暴力求 gcd 即可。略微卡常后直接通过。

题解做法是神秘随机化:对每一个颜色随机一个 \([0,2^{64})\) 之间的数,每次取出一位,取 \(1\) 的个数求 gcd。

\(\color{deeppink}\text{HT-113-NOI-B}\):一个大小为 \(n+n\) 的二分图有不超过 \(m\) 条边。给出 \(a_{1\sim n+n,0\sim m}\),表示如果点 \(i\) 的度数为 \(j\),则有 \(a_{i,j}\) 的价值。对于 \(k=1\sim n\),求最大匹配恰好为 \(k\) 时,所有点的价值和的最大值。\(n\le20,m\le40,a_{i,j}\le10^7\)

引理(konig 引理):最大匹配的大小等于最小点覆盖的大小。

推论一:二分图钦定匹配大小至少为 \(k\),点覆盖至多为 \(k\) 后最大匹配恰好为 \(k\)

推论二:最大匹配的 \(k\) 条边,必定一端为覆盖点,另一端不是。
证明显然:若两端都为覆盖点,则必定有另一条匹配边的两端都不是覆盖点,不满足点覆盖性质。

考虑如何限制点覆盖的大小,即没有边的两端都不是覆盖点中。由推论二,这样的边只有可能是非匹配边。

考虑记录匹配边数为 \(k\),非匹配边数量 \(l\),和左部覆盖点相连的共有 \(x\) 条,和右部覆盖点相连的有 \(y\) 条(左部覆盖点数量+右部覆盖点数量 \(=k\))。注意我们完全不关心图的具体形态。

边数 \(m\) 的限制即为 \(l+k\le m\),接下来不考虑它。

推论三:存在一种构造方式,能够使用至多 \(k\) 个点覆盖到所有 \(l\) 条非匹配边,当且仅当 \(l\le x+y\)

证明:依次加入 \(l\) 条边,\(x+y\) 的增加量由两端是否为覆盖点决定,其中仅不满足点覆盖性质(两端均不是覆盖点)时增加量为零。

于是考虑枚举点,枚举其度数,枚举其是否连有一条匹配边,如果是枚举其是否为覆盖点,转移即可。

咕。

posted @ 2026-06-02 20:43  Jordan_Pan  阅读(5)  评论(0)    收藏  举报