|
||||||||||
hexTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 119 Accepted Submission(s): 0 Problem Description 度度熊最喜欢六边形的网格了!!! ![](../../../data/images/C634-1002-1.jpg) 上图由左至右依序是边长为 $1$, $2$ 以及 $3$ 的六边形网格。 另外,每个六边形网格最左侧的格子称之为这个六边形网格的锚点,上图中每个六边形网格的锚点都以蓝色着色。 定义在六边形网格上的坐标系统:相对一个坐标为 $(x, y)$ 的中心格子,其周围格子的坐标定义为下图中所示的值: ![](../../../data/images/C634-1002-2.jpg) 给定一个大小为 $L$ 的六边形主网格,这个六边形主网格的锚点的坐标为 $(1, L)$。这个主网格中每一个格子上都有一个颜色,以 $0$ 至 $61$ 之间的整数代表。对于这个主网格有 $Q$ 个询问,每个询问将会询问这个主网格中某一个六边形子网格的范围中,包含有几个不一样的颜色。 一个询问以三个整数 $<x, y, l>$ 来表示其中一个六边形的子网格,依序为其锚点的坐标 $(x, y)$ 以及其大小 $l$。例如,下图为一个大小 $L = 3$ 的主网格,格子内部的数字为其坐标,而非格子的颜色。绿色边框所包围的子网格是一个锚点坐标为 $(5, 3)$,大小 $l = 2$ 的子网格,以 $<5, 3, 2>$ 表示,同时,红色边框表示 $<3, 1, 1>$ 的子网格。 ![](../../../data/images/C634-1002-3.jpg) Input 输入的第一行有一个正整数 $T$,代表接下来有几笔测试资料。 对于每笔测试资料: 第一行有一个正整数 $L$。 接下来的 $2L - 1$ 行输入代表一个大小为 $L$ 的六边形网格。 六边形网格将会透过下列的过程转换至输入的格式: 1. 将每格内代表颜色的数字 $0$~$61$ 按照 0-9a-zA-Z 的顺序对照转换为一个字符,例如 $10$ 转换为 'a',而 $36$ 转换为 'A'。 2. 将每行中的字符由左至右串接起来形成一个字符串,注意两个字符之间并不会安插任何的空格符。 3. 输入中的 $2L - 1$ 行每行会有一个字符串,依序代表编码后由上至下的这 $2L - 1$ 个字符串。 接下来的一行有一个整数 $Q$ 代表接下来有几组询问。 接下来的 $Q$ 行每行有三个正整数 $x$, $y$ 及 $l$,代表一组询问 $<x, y, l>$。 下图为范例测试资料中的六边形网格,格子内显示的数字代表颜色,而非坐标: ![](../../../data/images/C634-1002-4.jpg) * $1 \le L \le 250$ * 代表六边形网格的字符串中只会有 0-9a-zA-Z 这些字符。 * $0 \le Q \le 3 \times 10^5$ * $1 \le x \le 4L -3$ * $1 \le y \le 2L - 1$ * $1 \le l \le L$ * $(x, y)$ 一定是给定的六边形网格中合法的格子点。 * $<x, y, l>$ 询问的子六边形网格一定完整的位于主网格中。 * $1 \le T \le 15$ * 至多 $1$ 笔测试资料中的 $L > 50$ * 至多 $1$ 笔测试资料中的 $Q > 1000$ Output 对于每一笔测试资料,对于每一个询问,请依序各自在一行内输出一个整数,代表此询问的答案。 两笔测试资料间请不要输出多余的空白行。 Sample Input
Sample Output
Source | ||||||||||
|