C. 彩虹跳跃

    传统题 1000ms 256MiB

彩虹跳跃

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

彩虹跳跃

题目描述

给定一个长度为 nn 的数组 a1,a2,,ana_1,a_2,\dots,a_n

数组中的每个元素都是一个长度恰好为 22 的字符串,且这两个字符都来自集合 RWBG,并且 两个字符互不相同。例如:RWBG 是合法的元素,而 RRWW 不是合法的元素。

接下来有 qq 次查询,每次给定两个下标 x,yx,y,你需要回答从位置 xx 移动到位置 yy 的最小总代价。

一次移动可以从当前位置 ii 跳到任意另一个位置 jj,但必须满足:

  • aia_iaja_j 这两个长度为 22 的字符串中,至少有一个相同的字母

例如:

  • RW 可以跳到 RB,因为它们都有字母 R
  • BG 可以跳到 WG,因为它们都有字母 G
  • RW 不能直接跳到 BG,因为它们没有公共字母

从位置 ii 跳到位置 jj 的代价为:

ij|i-j|

也就是说,跳跃代价等于两个下标之差的绝对值。

你需要对于每次查询,求出从 xxyy 的最小总代价。
如果无法到达,输出 -1

输入格式

第一行输入一个整数 T(1T104)T(1\leq T\leq10^4),表示测试数据组数。

对于每组数据:

  • 第一行输入两个整数 n(1n2×105)n(1\leq n\leq2\times10^5) ,q(1q2×105)q(1\leq q\leq2\times10^5),表示数组长度和查询次数
  • 第二行输入 nn 个长度为 22 的字符串,表示数组中的每个元素
  • 接下来 qq 行,每行输入两个整数 x,yx,y,表示一次查询

输出格式

对于每次查询,输出一行一个整数,表示最小总代价。
如果无法到达,输出 -1

输入输出样例 #1

输入 #1

1
5 4
RW RB BG WG WB
1 2
1 3
1 4
2 5

输出 #1

1
2
3
3

【睿爸信奥】入门组算法周赛(20260322)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-3-22 0:00
结束于
2026-3-27 20:00
持续时间
4 小时
主持人
参赛人数
8