B. Problem B. 你说的对,但是这是签到 II

    传统题 1000ms 256MiB

Problem B. 你说的对,但是这是签到 II

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

Problem B. 你说的对,但是这是签到 II

时间限制 : 1000 ms

空间限制 : 256 MB

题目背景

pzr 最近学习了二进制枚举,这是一种状态压缩的技巧。例如有 nn 件物品,需要枚举各个物品选与不选的情况,不必写 nn 重循环 for iter_k in (0, 1):,特别是 nn 比较大或者 nn 的值可能变化时。我们可以将 nn 件物品的选与不选用 0011 表示,再将这 nn 件物品的状态拼成一个 nn 位二进制数,范围是 [0,2n1][0, 2^n-1]。通过 for mask in range(0, 2 ** n): 枚举这些状态,既不重复又不遗漏。

题目描述

pzr 有一个长度为 nn 的字符串 s=s1s2sns=s_1s_2\cdots s_n

pzr 喜欢回文串,所以他在 ss 的末尾依次添加 sn1,sn2,,s1s_{n-1},s_{n-2},\cdots,s_1,构造出字符串 tt ,即 t=s1s2snsn1sn2s1t=s_1s_2\cdots s_n s_{n-1} s_{n-2}\cdots s_1。例如,s=accbas=accba,则 t=accbabccat=accbabcca

现在,pzr 希望用 黑白两种颜色 将字符串 tt 染色,其中每个字符可以染成黑色,也可以染成白色。这样,被染成黑色的字符构成一个子序列,被染成白色的字符构成一个子序列。

在总共 22n12^{2n-1} 种染色方案中,考虑满足以下条件的染色方案数:

  • 至少有一个字符被染成黑色,至少有一个字符被染成白色。
  • 被染成黑色的字符构成的子序列,其字典序 严格大于 被染成白色的字符构成的子序列。

pzr 想知道,有多少满足条件的染色方案数?请帮助他解决这个问题。

输入格式

仅一个字符串 ss

输出格式

仅一个非负整数,表示满足条件的方案数。

可以证明,答案一定在 32 位整数可表示的范围内。

样例输入1

ba

样例输出1

3

样例1解释

t = 'bab'

88 种染色方法,其中 33 种满足要求,即:

'BBW': 将第一个字符和第二个字符染成黑色,则黑色子序列为 ba,白色子序列为 'b',符合要求。

'BWB': 将第一个字符和第三个字符染成黑色,则黑色子序列为 bb,白色子序列为 'a',符合要求。

'BWW': 将第一个字符染成黑色,则黑色子序列为 'b',白色子序列为 'ab',符合要求。

样例输入2

z

样例输出2

0

样例2解释

最终字符串的长度为 11,没有办法满足条件(至少有一个字符被染成黑色,至少有一个字符被染成白色)。

数据范围与约定

1s101\le |s|\le 10ss 仅由小写字母组成。

南京师范大学第九届互联网创新创业科技节计算机程序设计大赛

未参加
状态
已结束
规则
ACM/ICPC
题目
13
开始于
2024-3-20 17:40
结束于
2024-3-20 20:10
持续时间
2.5 小时
主持人
参赛人数
133