#CF1858D. 树木与线段

树木与线段

树木与线段

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

有一排 nn 棵树,种植计划用长度为 nn 的二进制串 ss 表示。si=0s_i=0 表示第 ii 棵是橡树,si=1s_i=1 表示第 ii 棵是冷杉。

检查员会计算:

  • l0l_0:最长连续 0 子串的长度;若没有 0,则为 00;
  • l1l_1:最长连续 1 子串的长度;若没有 1,则为 00。

当检查员的参数为 aa 时,美观度为 a⋅l0+l1a\cdot l_0+l_1。在种植前可以翻转不超过 kk 个字符。对于每个 a=1,2,…,na=1,2,\ldots,n,请独立求出能够得到的最大美观度。

输入格式

第一行包含测试组数 tt。每组第一行包含 n,kn,k,第二行包含二进制串 ss。

输出格式

对于每组数据,输出 nn 个整数。第 jj 个整数表示 a=ja=j 时的最大美观度。

样例输入 1

5
3 0
111
4 1
0110
5 0
10000
6 2
101101
7 1
0001101

样例输出 1

3 3 3
4 5 7 9
5 9 13 17 21
6 9 13 17 21 25
7 10 13 17 21 25 29

数据范围

1≤t≤10001\le t\le1000,1≤n≤30001\le n\le3000,0≤k≤n0\le k\le n,所有测试组的 nn 之和不超过 30003000。

子任务编号 分值 特殊限制
1 20 每组 n≤12n\le 12
2 40 每组 k=0k=0
3 无特殊限制