CF1841E Fill the Matrix

题目描述

有一个方阵,由 $n$ 行 $n$ 列的格子组成,行和列都从 $1$ 到 $n$ 编号。每个格子被涂成黑色或白色。在第 $i$ 列中,从第 $1$ 行到第 $a_i$ 行的格子是黑色的,从第 $a_i+1$ 行到第 $n$ 行的格子是白色的。 你需要在矩阵中放入 $m$ 个整数,分别为 $1$ 到 $m$。有以下两个规则: - 每个格子最多只能放一个整数; - 黑色格子不能放整数。 矩阵的美丽值定义为:有多少个 $j$ 满足 $j+1$ 被放在与 $j$ 同一行、相邻的右侧列(即右边相邻的格子)。 请问,矩阵的最大美丽值是多少?

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示矩阵的大小。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \le a_i \le n$),表示每一列中黑色格子的数量。 第三行包含一个整数 $m$($0 \le m \le \sum\limits_{i=1}^n n - a_i$),表示你需要在矩阵中放入的整数数量。注意,这个数可能无法用 32 位整数类型存储。 所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示在放入所有 $m$ 个整数后,矩阵的最大美丽值。保证白色格子的数量不少于 $m$,即一定有解。

说明/提示

由 ChatGPT 4.1 翻译