传统题 3000ms 1024MiB

H 说真话

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给定一个长度为 nn、字符集为 01? 的字符串 s1s2sns_1s_2 \cdots s_n

对于任意 k[1,n]k \in [1,n],考察字符串 Tk=t1t2tnT_k = t_1 t_2 \cdots t_n,其中对于 1in1 \le i \le n

  • sis_i \ne ?,则 ti=sit_i = s_i
  • 否则,若 iki \le kti=t_i = 0
  • 否则 ti=tikt_i = t_{i-k},你可以通过递归地算出 tikt_{i-k} 得到 tit_i

容易发现 TkT_k 的字符集为 01。你需要对所有 k[1,n]k \in [1,n] 求出 TkT_k1 的个数。

输入格式

输入的第一行一个整数 n(1n105)n (1 \le n \le 10^5) 表示字符串长度,第二行一个长度为 nn、字符集为 01? 的字符串 s1s2sns_1s_2\cdots s_n

输出格式

输出 nn 行,第 ii 行一个整数表示 TiT_i1 的个数。

5
10?1?
3
4
2
3
2

说明/提示

T1=T_1 = 10011T2=T_2 = 10111T3=T_3 = 10010T4=T_4 = 10011T5=T_5 = 10010

测试

未参加
状态
已结束
规则
IOI
题目
13
开始于
2026-5-7 23:30
结束于
2026-5-28 19:30
持续时间
500 小时
主持人
参赛人数
48