CF2040B.Paint a Strip

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Paint a Strip

题目描述

你有一个长度为 nn 的数组 a1,a2,,ana_1, a_2, \ldots, a_n,其元素全为零。

可以对该数组进行两种操作:

  1. 选择一个下标 ii(满足 1in1 \le i \le nai=0a_i = 0),将 aia_i 设为 11
  2. 选择一对下标 llrr(满足 1lrn1 \le l \le r \le nal=1a_l = 1ar=1a_r = 1 且 $a_l + \ldots + a_r \ge \lceil\frac{r - l + 1}{2}\rceil$),将区间 [l,r][l, r] 中所有元素设为 11

你的任务是计算,使数组中所有元素都变为 11,至少需要多少次第一种操作?

输入格式

输入包含多组测试用例。第一行是整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。接下来每个测试用例用一行表示,包含一个整数 nn1n1051 \le n \le 10^5),表示数组的长度。

需要注意,所有测试用例中 nn 的总和没有限制。

输出格式

对于每组测试用例,输出一个整数,表示完成任务所需的最少第一种操作次数。

说明/提示

  • 对于第一个测试用例,你可以对 i=1i = 1 操作一次即可。

  • 对于第二个测试用例,可以按以下步骤操作:

    1. i=1i = 1 进行第一种操作,数组变为 [1,0][1, 0]
    2. i=2i = 2 进行第一种操作,数组变为 [1,1][1, 1]

    第二个测试用例的操作步骤如下图所示:图示

  • 对于第三个测试用例,可以按以下步骤操作:

    1. i=1i = 1 进行第一种操作,数组变为 [1,0,0,0][1, 0, 0, 0]
    2. i=4i = 4 进行第一种操作,数组变为 [1,0,0,1][1, 0, 0, 1]
    3. l=1l = 1r=4r = 4 进行第二种操作,因为 a1+a2+a3+a4=2a_1 + a_2 + a_3 + a_4 = 2,满足不小于 rl+12=2\lceil\frac{r - l + 1}{2}\rceil = 2,所以可以将区间内元素设为 11,数组变为 [1,1,1,1][1, 1, 1, 1]

    第三个测试用例的操作步骤如下图所示:图示

本翻译由 AI 自动生成

样例

4
1
2
4
20
1
2
2
4

在线编程 IDE

建议全屏模式获得最佳体验