#152. 不公平的游戏
不公平的游戏
不公平的游戏
题目背景
你拥有一枚硬币。每次投掷时,它恰好有一半概率向上,一半概率向下。
现在你已经预测出了接下来 个时刻内这枚硬币的所有结果。你希望从中选择一段长度不超过 的连续时间进行游戏,使得你最后能获得的净收益最大。
你可以假定你和朋友都拥有无限的资产。
题目描述
游戏规则如下:
- 初始赌注为 ;
- 每次投掷硬币,如果结果为
U,表示你赢了,你会获得当前赌注,然后赌注重置为 ; - 如果结果为
D,表示你输了,你会失去当前赌注,然后下一次赌注变为当前赌注的 倍。
你已经知道长度为 的字符串 ,其中:
U表示该时刻硬币向上,你会赢;D表示该时刻硬币向下,你会输。
你可以选择 中一段长度不超过 的连续子串进行游戏,也可以选择长度为 的空子串。
请你求出,在最优选择下,你能获得的最大净收益。
输入格式
第一行输入两个整数 。
第二行输入一个长度为 的字符串 ,仅包含字符 U 和 D。
输出格式
输出一个整数,表示可以获得的最大净收益。
样例输入 1
4 3
DDUU
样例输出 1
2
样例输入 2
5 5
UDDUU
样例输出 2
3
样例解释
样例 1。选择最后两个时刻 UU 进行游戏,每次都赢得 ,总净收益为 。
样例 2。选择 个时刻进行游戏,过程 ,,,,总净收益为 。
数据范围
对于所有测试点,保证:
- 的长度为
- 仅包含
U和D
子任务
| 子任务 | 分值 | 附加约束 |
|---|---|---|
,且保证不会出现超过 个连续的 D |
||
相关
在下列比赛中: