A. Contest Proposal
如果 \(a_i > b_i\),则答案加一,令 \(\forall i \in [i + 1, n], \ a_i \leftarrow a_{i - 1}\)。
B. Coin Games
题意:\(n\) 枚硬币围成一圈,给出初始硬币状态,每取出一枚正面朝上的硬币并翻转相邻的两枚,没有正面则对方获胜,问先手胜负。
令当前正面硬币数为 \(cur\)。
- \(\text{UUU} \rightarrow cur - 3\)
- \(\text{UUD}\rightarrow cur - 1\)
- \(\text{DUD}\rightarrow cur + 1\)
每一次操作都会改变 \(cur\) 的奇偶性,先手获胜当且仅当在第偶数次操作时 \(cur = 0\),所以当初始 \(cur\) 为奇数时先手必胜,否则后手必胜。
C. Permutation Counting
题意:现有 \(a_i\) 个数字 \(i\),你可以新添 \(k\) 个数字,问这些数字组成的序列中最多几个排列。
先考虑 \(k = 0\)。
把 \(a\) 排序使得 \(a_1 \ge a_2 \ge \dots\ge a_n\),并让 \(a_i\) 对应的数为 \(x_i\)。
以 \(x_1, x_2\cdots x_n\) 的顺序往下填能使任意长度为 \(n\) 的字串是排列,一定最优。
- 填满 \(x_n\) 个如上循环节。
- 继续填 \(x_1,x_2 \dots,x_{n - 1}\),再往后不可能再出现排列(\(x_n\) 没了)。
此时的排列数为 \(na_n - 1\)。
如果 \(a_{n - 1} = a_n\) 呢,那么 \(x_{n -2}\) 后就不能填了,以此类推。
最后答案为 \(na_n - \sum[a_i = a_n]\)。
先往里新增 \(k\) 个数。
注意到只有改变最小值才会产生贡献。
\(a_n + 1\) 带来的影响大于 \(\sum[a_i = a_n]\) 的影响,所以二分最小值,若 \(k\) 有剩余,再去减小 \(\sum[a_i = a_n]\) 。
D1. Reverse Card (Easy Version)
题意:求 \(\sum\limits_{a = 1}^n\sum\limits_{b = 1}^m[b \cdot\gcd(a, b) \mid a + b ]\)。
\[b \cdot\gcd(a, b) \mid a + b \Rightarrow b \mid a \]不妨枚举 \(a = bi\),此时 \(\gcd(a, b) = b\)。
则 \(b \cdot\gcd(a, b) \mid a + b \iff b \mid i + 1\)。
所以答案为
\[\sum_{b = 1}^m\sum_{i = 1}^{\lfloor\frac{n}{b}\rfloor}[b \mid i + 1] \]后面一部分即求 \([2, \lfloor\frac{n}{b}\rfloor + 1]\) 有多少 \(b\) 的倍数,直接算 \(\lfloor\dfrac{\lfloor\frac{n}{b}\rfloor + 1}{b}\rfloor - [b = 1]\)。
时间复杂度 \(O(\sum m)\)。
D2. Reverse Card (Hard Version)
题意:求 \(\sum\limits_{a = 1}^n\sum\limits_{b = 1}^m [a + b \mid b \cdot\gcd(a, b)]\)。
不妨设 \(\gcd(a, b) = i, \ a = pi, \ b = qi\),有 \(\gcd(p, q) = 1\)。
那么 \(p + q \mid qi\)。
又因为 \(\gcd(p, q) = 1\),所以 \(p + q \mid i\)。
于是问题转化为
\[\sum\limits_{p = 1}^n\sum\limits_{q = 1}^m[\gcd(p, q) = 1]\sum_{p + q \mid i}[i(p + q) \le \min(n, m)][pi\le n][qi \le m] \]注意到 \(p < i, \ pi < n\),所以 \(p^2 < n\)。
直接枚举 \(\gcd(p, q) = 1\),计算 \(\min(\lfloor\dfrac{\min(n, m)}{p + q}\rfloor, \lfloor\dfrac{n}{p}\rfloor, \lfloor\dfrac{m}{q}\rfloor)\)。