P7801 KRUMPIRKO 题解
题目解释
给出 \(n, l, a_i, v_i\),求
\[\min _ {\mathbb{C} \subseteq \left[1, n\right] \cup \mathbb{Z} \land \left|\mathbb{C}\right| = l} \frac{\sum _ {i \in \mathbb{C}} v_i \cdot \sum _ {i \notin \mathbb{C}} v_i}{\sum _ {i \in \mathbb{C}} a_i \cdot \sum _ {i \notin \mathbb{C}} a_i}
\]
数据范围
- \(2 \leq n \leq 100\)。
- \(1 \le l < n\)。
- \(1 \le a_i \le 100\),\(\sum _ {i = 1} ^ n a_i \le 500\)。
- \(1 \le c_i \le 10 ^ 6\)。
解析
令 \(p = \sum _ {i = 1} ^ n v_i\),\(q = \sum _ {i = 1} ^ n a_i\)。
设 \(x = \sum _ {i \in \mathbb{C}} v _ i\),\(k = \sum _ {i \in \mathbb{C}} a _ i\)。
则题目所求为
\[\min _ {\mathbb{C} \subseteq \left[1, n\right] \cup \mathbb{Z} \land \left|\mathbb{C}\right| = l} \frac{x(p - x)}{k(q - k)} = \min _ {\mathbb{C} \subseteq \left[1, n\right] \cup \mathbb{Z} \land \left|\mathbb{C}\right| = l} \frac{-x ^ 2 + px}{k(q - k)}
\]
令 \(f _ {i, j, k}\) 表示前 \(i\) 个元素中选了 \(j\) 个放入集合 \(\mathbb{C}\),\(k\) 就表示上式中的 \(k\),此时的最小值为 \(f _ {i, j, k}\)。
对于第 \(i\) 个元素,只有两中选择:
\[\begin{cases}
f _ {i, j, k} = f _ {i - 1, j, k}, i \notin \mathbb{C} \\
f _ {i, j, k} = f _ {i - 1, j - 1, k - a _ i} + , i \in \mathbb{C}
\end{cases}
\]

浙公网安备 33010602011771号