坦白
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Description
题目描述
真是自作自受啊……
逃避,逃避,
就这么不停地逃避着,
甚至还想着“干脆让谁说出来好了”,
这不是如你所愿吗?
啊……真想就这样消失呢。
真是自作自受啊……
逃避,逃避,
就这么不停地逃避着,
甚至还想着“干脆让谁说出来好了”,
这不是如你所愿吗?
啊……真想就这样消失呢。
无人的 Sekai 里,Mizuki 正在回忆她不愿面对的一切。Ena 究竟是什么表情?自己真的已经成为所有人眼里的“怪物”了吗?
她知道维持现状对她来说永远是当下最好的选择,但是哪怕是鼓起了一次勇气,现在自己还会落得这样的结局吗……
她笑了笑,回忆过去对她来说已经于事无补,自己的结局在 「那一刻」已经确定了,世界上的秘密终究不能永远是秘密。
Mizuki 可以回忆起 n 个有序的事件,每个事件都是好的或者坏的,好的事件会为她带来 +1 的收益,坏的事件会为她带来 −1 的收益。
对于每个事件,如果她选择坦白,都会取消原来的收益,改为获得 ⊕1 的收益,其中 ⊕ 为异或运算。
总收益值定义为 264 依次经过每个事件的收益计算后的值。
你想要知道,如果 Mizuki 选择恰好 m 个事件坦白,她可以获得的最大收益,你只需要输出最大收益减掉 264 的值。
因为 Mizuki 想要知道坦白是否是好的,你需要对 m=0,1,⋯,n 分别计算。
Input Format
从文件 confess.in
中读入数据。
本题有多组测试数据。
第一行输入一个整数 T,代表数据组数。
接下来 T 行,每行输入一个字符串 S,第 i 个字符为 + 代表第 i 个事件是好的,反之代表这个事件是坏的。
Output Format
输出到文件 confess.out
中。
对于每组数据输出一行 ∣S∣+1 个整数,分别代表坦白 0,1,⋯,m 次的最大收益减 264 的值。
4
+
--
+--
++-+--++
1 1
-2 0 0
-1 1 1 1
2 4 6 6 6 6 4 2 0
Hint
Input 2
见下发的 confess2.in。 该样例满足测试点 3 的性质。
Output 2
见下发的 confess2.ans。 该样例满足测试点 3 的性质。
Input 3
见下发的 confess3.in。 该样例满足测试点 8 的性质。
Output 3
见下发的 confess3.ans。 该样例满足测试点 8 的性质。
数据范围
本题共 10 个测试点,全部测试点满足 1≤T≤10,1≤∣S∣≤3×105,Si∈{+,-}。
下表记 N=max(∣S∣)。
测试点 | N≤ | 特殊限制 |
---|---|---|
1 | 9 | 数据随机生成 |
2∼3 | 18 | |
4∼5 | 200 | 数据随机生成 |
6∼7 | 103 | |
8 | 105 | 数据随机生成 |
9 | 105 | |
10 | 3×105 |
数据随机生成:∣S∣=N,每个字符等概率为 +,- 中的一个。
样例解释
对于第一组样例,以下为最优策略:
- m=1 时坦白第 1 个事件。
对于第二组样例,以下为最优策略:
- m=1 时坦白第 1 个事件。
- m=2 时坦白第 1,2 个事件。
对于第三组样例,以下为最优策略:
- m=1 时坦白第 3 个事件。
- m=2 时坦白第 1,3 个事件。
- m=3 时坦白第 1,2,3 个事件。