loading...

NOIP 模拟赛 8.27

qoj17784. Same Segment

给定 \(n, m, K\),有 \(m\) 条限制,形如 \(\displaystyle \sum _{j={L_i}}^{R_i} a_j =K\),求一个非负整数序列 \(a\),满足所有限制且 \(0 \le a_i \le K\)。如果无解输出 \(-1\)

\(1 \le m \le 2 \times 10^5, 1 \le n \le 4 \times 10^5\)

首先发现这个问题与 \(K\) 是无关的,存在一种方案所有位置均是 \(0/K\) 之一。问题转化为“有 \(M\) 个区间,构造一个标记方案,使得每个区间恰好被一个标记覆盖”。考虑构造子问题,按 \(l\) 排序后,我们发现一个标记会支配若干连续的区间。

考虑定义 \(f_i\) 表示前 \(1 \sim i\) 个区间都满足恰好被一个标记覆盖,是否能够成功构造方案。转移考虑枚举支配区间范围 \((j, i]\),容易发现必须满足 \(\displaystyle \max _{k \le j}\{R_k\} < \min_{j < k \le i} \{R_k\}\),还必须有 \((j, i]\) 中的左端点都 \(\le (j, i]\) 中右端点最小值。

贪心地取最左边的合法标记位置,然后做 dp 就可以简单构造。

qoj12602. Master Zhu and Polygons

在一个正 \(n\) 边形中选取 \(m\) 个点(顶点有标号),要求有 \(k\) 个锐角,求方案数,对 \(10^9+7\) 取模。

\(T \le 5 \times 10^4, 3 \le n \le 10^6, 3 \le m \le 10^6, 0 \le k \le m\)\(n\) 为奇数。

ICPC 风格计数(?!💩💩?!)。正多边形问题放到圆上考虑。有经典结论:圆上一个弦,一个点如果处于该弦对应的劣弧上,那么以该点为顶点与弦上两点构成的角为钝角,反之为锐角。下令 \(h=\dfrac{n-1}{2}\)

image-20260827170010163

Case 1\(k \ge 4\),平凡情况,由于锐角的外角显然 \(>\dfrac{\pi}{2}\),所以 \(4\) 个锐角的外角和 $>2 \pi = $ 凸多边形外角和,输出 \(0\)

Case 2\(k = 3\),容易发现除了三角形没有凸多边形能做到了。所以所有 \(m > 3\) 的全部为 \(0\);对于 \(m=3\),容斥一下,对于钝角三角形,容易发现所有顶点都必然在圆直径的同一侧,钦定第一个点的位置,所以答案为:

\[\binom{n}{3}-n\binom{h}{2} \]

注意到这里顺便解决了 \(m=3\) 的问题。


Case 3\(m > 3, k<3\)

考虑“恰好”是不容易一步到位的,改为钦定 \(0/1/2\) 个锐角(分别记为 \(P_0,P_1, P_2\))。钦定 \(0\) 个就是全集 \(P_0=\dbinom{n}{3}\)

考虑钦定 \(1\) 个锐角,先枚举一个弦在枚举一个顶点,保证它处于弦的优弧上。对于弦长相同的其实本质一样,放到一起考虑。枚举弦的两个端点在劣弧上距离 \(i\) 个单位(以 \(\frac{1}{n}\) 圆弧为 \(1\) 个单位),则优弧上共有 \(n-i-1\) 个可选顶点。劣弧上任选 \(m-3\) 个点,发现顺次连接每一个一定都是钝角(所以我们钦定与实际的区别只在于弦的两个端点的对应角)。

注意弦端点位置的枚举。那么钦定 \(1\) 个锐角的方案数是:

\[P_1=n\sum _{i=1}^{h}(n-i-1)\binom{i-1}{m-3} \]

钦定两个锐角,首先发现 \(3\) 个锐角在这个 Case 是不可能的。所以实际上我们需要钦定其中一个角是锐角,另一个的判定标准仍然用弦的那个结论。

image-20260827172553403

例如这条红边对应的圆周角就是一个锐角。考虑仍然枚举弦长 \(i\),第二层加一个枚举 \(j\)。把 \(1\) 钦定为顶点,直径对应过去应该是 \(1+\dfrac{n}{2}\)(\(1+h\) 是一个靠得最近的整数值)。

image-20260827173051603

那么统计应该是简单的(枚举 \(u\) 为弦的一个端点,位于 \((1, j)\) 之间):

\[P_2=n\sum _{i=1}^{h} \sum _{j=3}^{1+h}\sum _{u=\max (j-i+1,2)}^{j-1}\binom{j-u-1}{m-4} \]

对于 \(\boldsymbol{\max (j-i+1, 2)}\) 的解释: 对 \(2\)\(\max\) 保证弦的左端点大于 \(1\),对 \(j-i+1\)\(\max\) 保证其右端点在 \(j\) 右侧。

综上我们得到了一个 \(\mathcal O(n^3)\) 的做法,可以通过上指标求和一步做到 \(\mathcal O(n^2)\)


考虑化简,先不管前面那个 \(n\) 的系数(代换的时候小心一点 \(-i-1 \neq -(i-1)\))。

\[\begin{aligned} P_1/n&=\sum _{i=1}^{h}(n-i-1)\binom{i-1}{m-3}\\ &=(n-\boldsymbol{2})\sum _{i=0}^{h-1}\binom{i}{m-3}-\sum _{i=0}^{h-1} i\binom{i}{m-3} \end{aligned} \]

后面那个式子,可以用扰动法简单求出,前面是上指标求和。最后得到:

\[\begin{aligned} P_1 / n &= (n-2)\binom{h}{m-2}-(h-1)\binom{h}{m-2}+\binom{h}{m-1}\\ &=h\binom{h}{m-2}+\binom{h}{m-1} \end{aligned} \]

对于 \(P_2\)

\[\begin{aligned} P_2/n&=\sum _{i=1}^{h} \sum _{j=3}^{1+h}\sum _{u=\max (j-i+1,2)}^{j-1}\binom{j-u-1}{m-4}\\ &=\sum _{i=1}^h\left(\sum _{j=2}^{i+1}\binom{j-2}{m-3} +\sum _{j=i+2}^{1+h}\binom{i-1}{m-3}\right)\\ &=\sum_{i=1}^h \binom{i}{m-2}+(h-i)\binom{i-1}{m-3}\\ &=\binom{h+1}{m-1}+\binom{h}{m-1} \end{aligned} \]

对于恰好为 \(1/2\) 设为 \(S_{1/2}\)\(P_1=S_1+2S_2, P_2=2S_2\),所以 \(S_1=P_1-2P_2\)\(S_2 = P_2\)\(S_0=P_0-P_1+P_2\)

注意,当 \(k=3\)\(m>3\) 时特判输出 \(0\)

posted @ 2026-08-28 08:16  goldspade  阅读(10)  评论(0)    收藏  举报