1 条题解
-
0
自动搬运
来自洛谷,原作者为

0x3F
Wir müssen wissen, wir werden wissen.搬运于
2025-08-24 22:48:42,当前版本为作者最后更新于2023-06-28 10:26:08,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
由期望的线性性可知,总分的期望等于每一道题得分的期望之和。
我们可以把题分为 类:
- 题号对应,个数为 。
- 题号不对应,应该填单选题,实际填单选题,个数为 。
- 题号不对应,应该填单选题,实际填多选题,个数为 。
- 题号不对应,应该填多选题,实际填单选题,个数为 。
- 题号不对应,应该填多选题,实际填多选题,个数为 。
同时,这 类题单个对答案的贡献分别为 。
答案为:$C_{eq}S_{eq}+C_{11}S_{11}+C_{12}S_{12}+C_{21}S_{21}+C_{22}S_{22}$。
首先,求 的值。
假设第 行第 列的题的坐标为 ,那么横向排列时其题号为 ,纵向排列时其题号为 。
如果不考虑题号是否对应,那么应该填单选题,实际填单选题的个数 就是满足 的 的数量。
满足 的区域可以分拆为两个矩形 和 $R_2=[\lfloor\frac{k}{m}\rfloor+1,\lfloor\frac{k}{m}\rfloor+1] \times [1,k\bmod m]$ 的不交并,如图所示。

满足 的区域也可以分拆成两个矩形 。
可以求出 $C_{11}'=\vert(R_1 \cup R_2) \cap (R_3 \cup R_4)\vert = \vert R_1\cap R_3\vert + \vert R_1\cap R_4\vert + \vert R_2\cap R_3\vert + \vert R_2\cap R_4\vert$。
而矩形的交的计算是非常简单的。
同时,显然有 $C_{12}=k-C_{11}',C_{21}=k-C_{11}',C_{22}'=nm-C_{11}'-C_{12}-C_{21}$。
接下来考虑题号对应的情况。题号对应时,有 ,即 。
记 ,则 , 故 ,当且仅当 ,其中 且 。
此时,题号为 。
当题号对应的这题为单选题时,有 ,即 ,因此 $C_{11}=C_{11}'-(\lfloor\frac{(k-1)g}{nm-1}\rfloor+1)$。同理,$C_{22}=C_{22}'-(\lfloor\frac{(nm-k-1)g}{nm-1}\rfloor+1)$。由于 的取值共有 种,故 。
注意特判 。
接下来,求 的值。
:显然为 。
:显然为 。
:显然为 。
:为 。假设多选题有 个选项,则有 的概率得 分,无论多选题的选项是怎样的,得分期望都为 。
:一道多选题的选项共有 种可能,因此符合条件的选项 共有 种。考虑计算这些 的得分之和。
假设 , 有 种选法,由于 ,故 有 种选法,对答案的贡献为 。同时,有 的限制。因此,得分之和为:
$$\sum_{i=2}^{c-1}\sum_{j=2}^{i}\mathrm{C}_{c}^{i}\mathrm{C}_{i}^{j}\frac{j}{i} $$$$=\sum_{i=2}^{c-1}\frac{\mathrm{C}_{c}^{i}}{i}\sum_{j=2}^{i}j\mathrm{C}_{i}^{j} $$由二项式定理,$(x+y)^{n}=\mathrm{C}_{n}^{0}y^{n}+\mathrm{C}_{n}^{1}xy^{n-1}+\cdots+\mathrm{C}_{n}^{n}x^n$,令 ,得:
$$(x+1)^{n}=\mathrm{C}_{n}^{0}+\mathrm{C}_{n}^{1}x+\mathrm{C}_{n}^{2}x^2+\mathrm{C}_{n}^{3}x^3+\cdots+\mathrm{C}_{n}^{n}x^n(\star) $$两边关于 求导,得:
$$n(x+1)^{n-1}=\mathrm{C}_{n}^{1}+2\mathrm{C}_{n}^{2}x+3\mathrm{C}_{n}^{3}x^2+\cdots+n\mathrm{C}_{n}^{n}x^{n-1} $$令 得:
$$i2^{i-1}=\mathrm{C}_{i}^{1}+2\mathrm{C}_{i}^{2}+3\mathrm{C}_{i}^{3}+\cdots+i\mathrm{C}_{i}^{i} $$移项得:
$$2\mathrm{C}_{i}^{2}+3\mathrm{C}_{i}^{3}+\cdots+i\mathrm{C}_{i}^{i}=i2^{i-1}-\mathrm{C}_{i}^{1}=i(2^{i-1}-1) $$故原式可化简为:
$$\sum_{i=2}^{c-1}\frac{\mathrm{C}_{c}^{i}}{i}\times i(2^{i-1}-1) $$$$=\frac{1}{2}\sum_{i=2}^{c-1}2^{i}\mathrm{C}_{c}^{i}-\sum_{i=2}^{c-1}\mathrm{C}_{c}^{i} $$中,令 得:
$$2^c=\mathrm{C}_{c}^{0}+\mathrm{C}_{c}^{1}+\mathrm{C}_{c}^{2}+\mathrm{C}_{c}^{3}+\cdots+\mathrm{C}_{c}^{c-1}+\mathrm{C}_{c}^{c} $$移项得:
$$\mathrm{C}_{c}^{2}+\mathrm{C}_{c}^{3}+\cdots+\mathrm{C}_{c}^{c-1}=2^c-\mathrm{C}_{c}^{0}-\mathrm{C}_{c}^{1}-\mathrm{C}_{c}^{c}=2^c-c-2 $$中,令 得:
$$3^c=\mathrm{C}_{c}^{0}+2\mathrm{C}_{c}^{1}+4\mathrm{C}_{c}^{2}+8\mathrm{C}_{c}^{3}+\cdots+2^{c-1}\mathrm{C}_{c}^{c-1}+2^{c}\mathrm{C}_{c}^{c} $$移项得:
$$4\mathrm{C}_{c}^{2}+8\mathrm{C}_{c}^{3}+\cdots+2^{c-1}\mathrm{C}_{c}^{c-1}=3^c-\mathrm{C}_{c}^{0}-2\mathrm{C}_{c}^{1}-2^{c}\mathrm{C}_{c}^{c}=3^c-2^c-2c-1 $$故原式可化简为:
故 。
时间复杂度为 。
代码:
#include <bits/stdc++.h> using namespace std; const int p = 1e9 + 7; inline int qpow(int a, long long b) { int s = 1; while (b) { if ((b & 1LL)) s = (long long)s * a % p; a = (long long)a * a % p; (b >>= 1LL); } return s; } int n, m, c; long long nm, k; long long ceq, c11, c12, c21, c22; int seq, s11, s12, s21, s22; int ans; int main() { cin >> n >> m >> k >> c; nm = (long long)n * m; c11 = (k/m) * (k/n) + min(k/n, k%m) + min(k%n, k/m) + (k/m < k%n && k/n <= k%m); c12 = k - c11; c21 = k - c11; c22 = nm - c11 - c12 - c21; int g = __gcd(n-1, m-1); long long step = ((g) ? ((nm - 1) / g) : (1LL)); ceq = g+1; c11 -= (step + k - 1) / step; c22 -= (step + nm - k - 1) / step; seq = 1; s11 = qpow(c, p-2); s12 = 0; s21 = qpow(c, p-2); s22 = ((((long long)qpow(3, c) - 3LL * qpow(2, c) + 3) % p + p) % p * qpow(2, p-2) % p) * qpow(((qpow(2, c) - c - 2) % p + p) % p, p-3) % p; ans = (ans + ceq % p * seq) % p; ans = (ans + c11 % p * s11) % p; ans = (ans + c12 % p * s12) % p; ans = (ans + c21 % p * s21) % p; ans = (ans + c22 % p * s22) % p; cout << ans << endl; return 0; }
- 1
信息
- ID
- 8823
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者