33OJ
登录 注册

#CF2276E. 好子串 / Good Substrings

好子串 / Good Substrings

题目描述

给定一个长度为 nn,仅由数字组成的字符串 ss。

ss 的子串指其一段连续的字符。子串 sl…rs_{l \dots r} 是坏子串,当且仅当它包含 20252025 作为子序列,并且不包含 20262026 作为子序列。其余情况的子串都是好子串。 例如:20252025、7270727572707275、2062520625 是坏子串;而 2025620256、20262026、777777、12907235761290723576 是好子串。

对每个下标 ii(1≤i≤n1 \le i \le n),求出包含位置 ii 的好子串数量。也就是,对每个 ii,求满足 1≤l≤i≤r≤n1 \le l \le i \le r \le n,且子串 sl…rs_{l\dots r} 是好子串的 (l,r)(l,r) 对数。

输入格式

第一行一个整数 tt(1≤t≤1041 \le t \le 10^4),代表测试用例数量。

每组测试用例第一行一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)。

第二行给出长度为 nn 的数字字符串 ss。

额外约束:所有测试用例的 nn 之和不超过 3⋅1053\cdot 10^5。

输出格式

对每组测试用例,输出 nn 个整数。第 ii 个整数代表包含下标 ii 的好子串数量。

2
6
202516
5
20265
4 8 10 10 9 6 
5 8 9 8 5 

原题链接

原题链接