#520. NOI2025 day2 绝对防御
NOI2025 day2 绝对防御
题目描述
小 Q 与电脑玩回合制卡牌游戏“绝对防御”,小 Q 有一个大小为 的牌堆,包含攻击牌(记为 )与防御牌(记为 ),游戏规则如下:
- 游戏开始时,小 Q 从牌堆顶抽取 ()张牌作为初始手牌。
- 每轮对战开始时,小 Q 从牌堆顶抽取 张牌;若牌堆只剩余 张牌,则只抽取 张。
- 每轮对战分为两个回合:
- 第一回合:小 Q 为攻击方,必须从手牌打出一张攻击牌;电脑为防御方,永远能打出防御牌。
- 第二回合:小 Q 为防御方,必须从手牌打出一张防御牌;电脑为攻击方,永远能打出攻击牌。
- 特殊技能:当小 Q 为防御方时,可从手牌打出一张攻击牌进行防御,该技能每 轮对战才能使用一次(使用后接下来 轮无法使用)。
小 Q 的获胜目标为抽空牌堆(游戏开始时牌堆已空则直接获胜),求最小的初始抽牌数 。
小 Q 增加 次修改操作,第 ()次修改操作会给定一个正整数 ,改变从牌堆顶到牌堆底的第 张牌的类型(攻击牌与防御牌互换)。需对初始时及每次修改后的牌堆,求出上述最小初始抽牌数 。
输入格式
- 第一行包含两个非负整数 ,分别表示测试点编号与测试数据组数, 表示该测试点为样例。
- 每组测试数据:
- 第一行包含两个正整数 ,分别表示牌堆大小与修改次数。
- 第二行包含一个长度为 的字符串 ,表示从牌堆顶到牌堆底的每张牌,其中 为攻击牌, 为防御牌。
- 第 ()行包含一个正整数 ,表示第 次修改的牌为从牌堆顶到牌堆底的第 张牌。
输出格式
对于每组测试数据,设初始时的答案为 ,第 ()次修改后的答案为 ,输出一行 个正整数 ,表示初始时及每次修改后的最小抽牌数。
样例1
输入
0 3
5 1
01010
4
7 0
0001000
10 0
0001010000
输出
1 1
3
2
样例1解释
该样例共包含三组测试数据:
- 第一组测试数据(,):
- 初始时,牌堆为 ,若初始抽牌数为 ,小 Q 可通过特定出牌方式抽空牌堆,且初始至少需抽 张牌,故 。
- 第一次修改后,牌堆变为 ,同理初始抽牌数 即可满足,故 。
- 第二组测试数据(,):
- 初始时,牌堆为 ,初始抽牌数 可满足抽空牌堆,且无更小值,故 。
- 第三组测试数据(,):
- 初始时,牌堆为 ,初始抽牌数 可满足抽空牌堆,且无更小值,故 。
数据范围
- 对于所有 ,均有 。
- 对于所有 ,均有 。
- 设 分别为单个测试点内所有测试数据的 的和,具体限制如下表。
| 测试点编号 | 特殊性质 | |||
|---|---|---|---|---|
| 1 | 无 | |||
| 2 | ||||
| 3, 4 | ||||
| 5 ~ 7 | ||||
| 8 | ||||
| 9, 10 | AB | |||
| 11 | AC | |||
| 12 ~ 14 | AD | |||
| 15 ~ 17 | E | |||
| 18, 19 | 无 | |||
| 20 | ||||
特殊性质说明:
- A:保证对于所有 , 均在 中独立均匀随机生成。
- B:保证所有的 互不相同,且对于所有 ,均有 。
- C:保证所有的 互不相同,且对于所有 ,均有 。
- D:保证对于所有 , 均在 中独立均匀随机生成。
- E:保证对于所有 ,均有 。