思路:数学
因为是子序列,所以统计出每个字符出现次数,只有26种字符。
考虑当前两种字符 a 和 b 分别出现了 x 次和 y 次 ,v = min(x, y)
这两种字符可以构成 a 和 b 均出现相同次数的子序列有:
长度为 2,4,6,8,... ,2v 的这 v 种子序列 ,两种字符分别出现 1,2,3,4,...,v 次
字符 a 和 b 均出现 t 次,对于字符 a 有 C(x, t) 种选择,字符 b 有 C(y, t) 种选择
P1773.第4题-小美的平衡串
题目描述
小美定义一个字符串是平衡串,当且仅当该字符串仅包含两种字符,且两种字符出现的次数相等。例如"ababba"是平衡串。
现在小美拿到了一个仅由小写字母组成的字符串,她想知道该字符串有多少子序列是平衡串?
定义子序列为从左到右取若干个字符(可以不连续)组成的字符串。例如,"aca"是"arcaea"的子序列。
输入描述
第一行输入一个正整数n,代表字符串长度。
第二行输入一个长度为n的、仅由小写字母组成的字符串。
1≤n≤200000
输出描述
输出一个整数表示答案,由于答案可能很大,请输出答案对 109+7 取模的结果。
样例
输入
5
ababc
输出
9
说明
长度为 2 的子序列,共有 8 个。
长度为 4 的子序列,共有 1 个。