CF873C Strange Game On Matrix
题目描述
Ivan 正在玩一个奇怪的游戏。
他有一个 $ n $ 行 $ m $ 列的矩阵 $ a $,矩阵中的每一个元素都等于 $ 0 $ 或 $ 1 $。行和列都从 $ 1 $ 开始编号。Ivan 可以将矩阵中的若干 $ 1 $ 替换为 $ 0 $。之后,他的得分按如下方式计算:
1. 初始时,Ivan 的得分为 $ 0 $;
2. 对于每一列,Ivan 会在该列中找到最靠上的 $ 1 $(即,如果当前列是第 $ j $ 列,他会找到最小的 $ i $ 满足 $ a_{i,j}=1 $)。如果该列没有 $ 1 $,则跳过该列;
3. 从他找到的那个元素开始,Ivan 会观察接下来的 $ \min(k, n-i+1) $ 个元素(即从当前找到的位置往下数 $ k $ 个,若不足 $ k $ 个则全取),并统计其中 $ 1 $ 的个数,将该数加入得分。
当然,Ivan 想让自己的总得分最大。同时他也不想改动太多元素,因此他会尽可能少地把 $ 1 $ 改为 $ 0 $。请你帮他计算,他最多可以拿到多少分,以及达到这个分数时最少需要将多少个 $ 1 $ 变为 $ 0 $。
输入格式
第一行包含三个整数 $ n $、$ m $ 和 $ k $($ 1 \leq k \leq n \leq 100 $,$ 1 \leq m \leq 100 $)。
接下来的 $ n $ 行,每行包含 $ m $ 个整数,表示矩阵 $ a $ 的元素。每个元素都是 $ 0 $ 或 $ 1 $。
输出格式
输出两个整数,分别表示 Ivan 可以获得的最大分数,以及为获得此分数最少要进行的替换次数。
说明/提示
在第一个样例中,Ivan 会将 $ a_{1,2} $ 这个元素替换掉。
由 ChatGPT 5 翻译