P16157 [ICPC 2016 NAIPC] K-Inversions

题目描述

给定一个仅由大写字母 **A** 和 **B** 组成的字符串 $s$。对于一个整数 $k$,如果 $s[i] = \text{B}$、$s[j] = \text{A}$ 且 $j - i = k$,则称一对下标 $i$ 和 $j$($1 \leq i < j \leq n$)为一个 $k$-逆序对。 考虑字符串 **BABA**。它有两个 1-逆序对和一个 3-逆序对,没有 2-逆序对。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/13pgprz8.png) ::: 对于 $1$ 到 $n-1$(包含)之间的每个 $k$,输出字符串 $s$ 中 $k$-逆序对的数量。

输入格式

每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。输入仅有一行,包含一个字符串 $s$,该字符串仅由大写字母 **A** 和 **B** 组成。字符串 $s$ 的长度在 $1$ 到 $1{,}000{,}000$ 之间。没有空格。

输出格式

输出 $n-1$ 行,每行一个整数。第一行的整数应为 1-逆序对的数量,第二行为 2-逆序对的数量,以此类推。

说明/提示

翻译由 DeepSeek V3.2 完成