CF2092F.Andryusha and CCB

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我们定义一个二进制字符串 zz 的美感值为满足 1≤i<∣z∣1 \le i < |z| 且 zi≠zi+1z_i \neq z_{i+1} 的索引 ii 的数量。

在等待 CCB 的朋友们到来时,Andryusha 烤了一个馅饼,表示为一个长度为 nn 的二进制字符串 ss。为了避免冒犯任何人,他想要将这个字符串分割成 kk 个子字符串,使得每个字符属于恰好一个子字符串,且所有子字符串的美感值相同。

Andryusha 不知道会有多少 CCB 的朋友来他家,因此他希望找出满足条件的所有 kk 值的数量。然而,他的兄弟 Tristan 认为这个问题的表述过于简单。因此,他要求你为字符串的每个前缀找出这样的 kk 值的数量。换句话说,对于每个 ii(从 11 到 nn),你需要找出满足可以将前缀 s1s2…sis_1 s_2 \ldots s_i 分割成恰好 kk 个具有相同美感值的子字符串的 kk 值的数量。

输入格式

每个测试包含多个测试用例。输入数据第一行包含一个整数 tt (1≤t≤1051 \le t \le 10^5) —— 测试用例数量。接下来是测试用例描述。

每个测试用例的第一行包含一个整数 nn (1≤n≤1061 \leq n \leq 10^6) —— 二进制字符串的长度。
第二行包含一个长度为 nn 的二进制字符串,仅由字符 0 和 1 组成。

保证所有测试用例的 nn 之和不超过 10610^6。

输出格式

对于每个测试用例,输出一行包含 nn 个整数 cic_i (0≤ci≤n0 \le c_i \le n) —— 表示对于前缀 s1s2…sis_1 s_2 \ldots s_i 满足条件的 kk 值的数量。

输入输出样例

  • 输入#1

    3
    5
    00011
    10
    0101010101
    7
    0010100

    输出#1

    1 2 3 4 5
    1 2 2 3 2 4 2 4 3 4
    1 2 3 3 4 3 4

说明/提示

第三个测试案例中,满足条件的 kk 值为:

  1. i=1i = 1: k∈{1}k \in \{1\},
  2. i=2i = 2: k∈{1,2}k \in \{1, 2\},
  3. i=3i = 3: k∈{1,2,3}k \in \{1, 2, 3\},
  4. i=4i = 4: k∈{1,3,4}k \in \{1, 3, 4\},
  5. i=5i = 5: k∈{1,2,4,5}k \in \{1, 2, 4, 5\},
  6. i=6i = 6: k∈{1,5,6}k \in \{1, 5, 6\},
  7. i=7i = 7: k∈{1,5,6,7}k \in \{1, 5, 6, 7\}。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页