CF1990D.Grid Puzzle
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个大小为 n 的数组 a。
有一个 n×n 的网格。在第 i 行,前 ai 个格子是黑色的,其余格子是白色的。也就是说,记 (i,j) 为第 i 行第 j 列的格子,(i,1),(i,2),…,(i,ai) 这些格子是黑色的,(i,ai+1),…,(i,n) 这些格子是白色的。
你可以进行如下任意次数、任意顺序的操作:
- 将一个 2×2 的子网格染成白色;
- 将整行染成白色。注意你不能将整列染成白色。
请你求出将所有格子染成白色所需的最少操作次数。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
对于每个测试用例:
- 第一行包含一个整数 n(1≤n≤2⋅105),表示数组 a 的大小。
- 第二行包含 n 个整数 a1,a2,…,an(0≤ai≤n)。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数,表示将所有格子染成白色所需的最少操作次数。
输入输出样例
输入#1
10 1 0 4 2 4 4 2 4 3 2 1 0 3 0 3 0 3 0 1 3 3 3 1 0 4 3 1 0 3 4 0 2 2 2 6 1 3 4 2 0 4 8 2 2 5 2 3 4 2 4
输出#1
0 3 2 1 2 2 3 2 4 6
说明/提示
在第一个测试用例中,你不需要进行任何操作。
在第二个测试用例中,你可以进行如下操作:
- 将 (1,1),(1,2),(2,1),(2,2) 染成白色;
- 将 (2,3),(2,4),(3,3),(3,4) 染成白色;
- 将 (3,1),(3,2),(4,1),(4,2) 染成白色。
可以证明 3 是最少的操作次数。
在第三个测试用例中,你可以进行如下操作:
- 将第一行染成白色;
- 将 (2,1),(2,2),(3,1),(3,2) 染成白色。
可以证明 2 是最少的操作次数。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?