#P1040. 灵图机
灵图机
题目描述
小圈有一台灵图机。这个灵图机输入一个打孔的纸带。该纸带有 个格子,上面有若干个格子被打孔了。
因为这是一台灵图机,所以它有比图灵机更强的功能:
- 任意指定一个打孔的格子 ,将 变为未打孔的,一次花费 ;
- 任意指定一个未打孔的格子 ,将 变为打孔的,一次花费 ;
- 任意指定两个格子 ,其中 是打孔的, 是未打孔的,然后将 均变为打孔的,一次花费 。
- 任意指定两个格子 ,其中 均是打孔的,然后将 均变为未打孔的,一次花费 。
上述功能可以使用任意多次。你的目标是用最小的代价把纸带上所有格子的打孔状态变成 相同的,即全部打孔或全部未打孔。
输入格式
本题单个测试点内有多组测试数据。第一行是一个整数 ,表示数据组数。对每组数据,按如下格式读入:
第一行是三个整数,依次表示 。
第二行是一个长度为 的字符串 ,表示纸带的初始状态。 的第 个字符为 表示纸带第 个格子是未打孔的, 的第 个字符为 表示第 个格子是打孔的。
输出格式
对于每组数据,输出一行一个整数表示答案。
样例
样例输入 1
4
2 1 1
10
3 2 1
110
4 4 2
1010
6 5 6
110011
样例输出 1
1
1
2
10
样例 2
见下发文件 ringtu2.in
、ringtu2.ans
,该样例满足 。
数据范围与提示
本题共 个测试点,每个测试点 分。
测试点编号 | |||
---|---|---|---|
对于全部的测试数据,保证 ,,。