TQ的图像处理

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目描述

铁拳最近在做一个视觉火灾识别系统,在进行训练前,铁拳得对图像进行预处理。然而铁拳最近学数学不开心,这种事情就只能扔给你们来做了啦。输入一个 $n\times n$ 的灰度图。对该图做以下几种操作:

  1. getH: 对给定区域的每个点的灰度值 $x$,求 $H$,并用 $H$ 替代。$H = (x^2+233)\%1773$。若该点已求过 $H$ 值,则不做处理。
  2. normalize:对给定区域的每个点进行判断,如果求过 $H$ 值,$H$ 值不为零就取为 $1$,否则取 $0$。若没有取过 $H$ 值,就不做处理。
  3. display:以 #+$6$位$16$进制大写(没有加号,如 #123ABC)输出给定区域的当前状态(即输出现在该区域每个点对应的 $H$ 或 $x$ 值,两个数之间有两个空格,允许行末空格)。

输入

多组数据,第一行一个数 $T(1<T\leq 1000)$,表示数据组数。

对于每组输入第一行输入$n,m$,$n$ 为图的大小,$m$ 为操作的个数,$n \in [1,100],m \in [0,100] $。

接下来 $n$ 行,每行 $n$ 个空格分隔的整数,表示 $n\times n$ 的灰度图。(灰度值的范围为 $[0,256]$)。

在接下来 $m$ 行代表 $m$ 组操作。输入操作的名称(一个字符串,含义见题目描述),接着四个整数 $x_1, y_1, x_2, y_2$ 为给定区域的对角线两点。

保证所有的输入合法。

输出

在所有操作结束后以 $4$ 位十进制(不足四位前补 $0$)输出最后整幅图的状态。(即输出现在整幅每个点对应的 $H$ 或 $x$ 值,两个数之间有两个空格,允许行末空格,输出格式见样例)。

输入样例

1
4 5
234 97 23 247
187 198 242 256
98 66 96 90
13 43 88 54
display 1 1 4 4
getH 2 2 4 4
normalize 3 3 4 4
getH 1 1 3 3
normalize 2 2 3 3

输出样例

#0000EA  #000061  #000017  #0000F7  
#0000BB  #0000C6  #0000F2  #000100  
#000062  #000042  #000060  #00005A  
#00000D  #00002B  #000058  #000036  
0026  0777  0762  0247  
1515  0001  0001  0168  
0972  0001  0001  0001  
0013  0309  0001  0001

相关推荐