彩虹跳跃
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
彩虹跳跃
题目描述
给定一个长度为 的数组 。
数组中的每个元素都是一个长度恰好为 的字符串,且这两个字符都来自集合 R、W、B、G,并且 两个字符互不相同。例如:RW、BG 是合法的元素,而 RR、WW 不是合法的元素。
接下来有 次查询,每次给定两个下标 ,你需要回答从位置 移动到位置 的最小总代价。
一次移动可以从当前位置 跳到任意另一个位置 ,但必须满足:
- 和 这两个长度为 的字符串中,至少有一个相同的字母
例如:
RW可以跳到RB,因为它们都有字母RBG可以跳到WG,因为它们都有字母GRW不能直接跳到BG,因为它们没有公共字母
从位置 跳到位置 的代价为:
也就是说,跳跃代价等于两个下标之差的绝对值。
你需要对于每次查询,求出从 到 的最小总代价。
如果无法到达,输出 -1。
输入格式
第一行输入一个整数 ,表示测试数据组数。
对于每组数据:
- 第一行输入两个整数 ,,表示数组长度和查询次数
- 第二行输入 个长度为 的字符串,表示数组中的每个元素
- 接下来 行,每行输入两个整数 ,表示一次查询
输出格式
对于每次查询,输出一行一个整数,表示最小总代价。
如果无法到达,输出 -1。
输入输出样例 #1
输入 #1
1
5 4
RW RB BG WG WB
1 2
1 3
1 4
2 5
输出 #1
1
2
3
3