#L5051. 「JOISC 2025 Day3」会议
「JOISC 2025 Day3」会议
#5051. 「JOISC 2025 Day3」会议
题目译自 JOISC 2025 Day3 T2 「会議 / Conference」
题目描述
K 理事长计划组织一场为期 天的会议,每天举办一场。会议地点可选为主会场 A 或副会场 B、C 中的一个。
每场会议的场地信息由一个长度为 的字符串 表示,包含字符 A、B、C 或 ?。第 () 天的会议若 的第 个字符为 A,则在会场 A 举行;B 则为会场 B,C 为会场 C,? 表示待定。不过,第 天和第 天因参会人数众多,已确定使用会场 A。
现在,K 理事长需要为所有待定会议指定会场 A、B 或 C 中的一个。为了减少移动负担,他希望尽量减少相邻两天(第 天和第 天,)场地不同的情况数。
你需要针对 个安排方案,计算这种最小情况数。第 () 个方案及其问题是:
将待定会议分配为 个 A、 个 B 和 个 C,求相邻两天场地不同的 的最小个数。
给定场地信息和方案详情,编写程序回答这些问题。
输入格式
第一行包含一个整数 。
第二行包含一个字符串 。
第三行包含一个整数 。
接下来的 行,每行包含三个整数 。
输出格式
输出 行。第 () 行输出将待定会议分配为 个 A、 个 B、 个 C 时,相邻两天场地不同的 的最小个数。
样例 1
输入
9
A??B??C?A
3
1 3 1
4 1 0
0 0 5
输出
3
4
4
解释
在第 个方案中,对于 个尚未确定场地的会议,分配 个到会场 A, 个到会场 B, 个到会场 C。例如,可以分配为 ABBBBCCAA,此时连续两天会议场地不同的情况有第 、、 天,共 个。无法使这种情况少于 个,因此第一行输出 。
在第 个方案中,对于 个尚未确定场地的会议,分配 个到会场 A, 个到会场 B。例如,可以分配为 AAABBACAA,此时连续两天会议场地不同的情况有第 、、、 天,共 个。无法使这种情况少于 个,因此第二行输出 。
在第 个方案中,对于 个尚未确定场地的会议,全部分配到会场 C。此时连续两天会议场地不同的情况有第 、、、 天,共 个,因此第三行输出 。
这个样例满足子任务 的限制。
样例 2
输入
12
A???A?B????A
4
0 8 0
2 6 0
7 1 0
3 5 0
输出
4
4
2
2
此样例满足所有子任务的限制。
样例 3
输入
28
ACB??B???BCB??B????B?AAA?BBA
26
6 1 6
4 5 4
2 3 8
9 2 2
11 0 2
8 4 1
11 0 2
2 0 11
0 1 12
12 1 0
10 3 0
1 4 8
3 7 3
2 8 3
1 3 9
11 1 1
7 0 6
6 4 3
8 4 1
0 10 3
13 0 0
11 1 1
0 6 7
2 8 3
9 0 4
0 0 13
输出
15
11
13
13
15
12
15
15
16
15
13
12
10
9
13
15
15
11
12
9
15
15
11
9
15
17
这个样例满足子任务 的限制。
数据范围与提示
对于所有输入数据,满足:
- 是长度为 的字符串,包含 A、B、C 或 ?
- 的第 和第 个字符为 A
- ()
- ()
- ()
- () 等于 中 ? 的个数
- () 为整数
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 1 | 4 | , 中 ? 个数 |
| 2 | 7 | |
| 3 | 13 | , |
| 4 | 18 | |
| 5 | 12 | |
| 6 | 8 | 无 C, () |
| 7 | 13 | () |
| 8 | 25 | 无附加限制 |