#P1016. demon的四级考试
demon的四级考试
四级考试 · 答题卡识读
题目背景
demon 今天考四级考红温了。
他根本不知道"一日为师,终身为父"怎么翻译,最后盯着答题卡发呆——这破答题卡到底是怎样检测你填涂的答案的?
"像素,"监考 AI 的声音在脑中响起,"一切都是像素。"
假设答题卡是按照像素的颜色进行判断的。由于四级答题卡是彩色扫描的,所以需要先把每个像素的 R、G、B 值转化为灰度值。
灰度值计算公式:
灰度值 = 0.299 × R + 0.587 × G + 0.114 × B
如果灰度值 < 132 则判定为黑色(已填涂),否则为白色(未填涂)。
demon 恍然大悟——原来如此。现在他扔给你一张答题卡的扫描图像和每个选项的位置,让你帮他识读出所有答案。
题目描述
给定一张答题卡扫描图像的像素矩阵和每道题各选项的矩形区域,请判定每道题被填涂的选项。
判定方法:
- 对区域内的每个像素,按上述公式计算灰度值,灰度值 < 132 的像素为黑色(已填涂),反之为白色(未填涂)。
- 若区域内黑色像素数量 ≥ 区域总像素数的一半,则判定该选项已填涂。
- 保证每道题有且仅有一个选项被填涂。
输入格式
第一行两个整数 H, W(1 ≤ H, W ≤ 200),表示图像的高和宽(行数和列数)。
接下来 H 行,每行 3 × W 个整数,表示该行从左到右每个像素的 R, G, B 值。每个分量取值范围 0 – 255。
接下来一行一个整数 N(1 ≤ N ≤ 100),表示题目数量。
接下来 N 行,每行 16 个整数,按 A, B, C, D 的顺序描述四个选项的矩形区域。每个区域由四个整数 x1, y1, x2, y2 表示(),含义为从 到 内的所有像素。
输出格式
一行,包含 N 个大写字母(A、B、C、D),表示每道题的答案。字母之间无空格无分隔符。
样例
3 8
10 10 10 10 10 10 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
10 10 10 10 10 10 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
1
0 0 2 1 0 2 2 3 0 4 2 5 0 6 2 7
A
说明: 图像 3×8,共 1 题。选项 A 区域 (0,0) – (2,1) 共 6 个像素,其中 (0,0)(0,1)(1,0)(1,1) 为 (10,10,10),灰度 = 10 < 132,4 个黑色 ≥ 3(一半),判定填涂。(2,0)(2,1) 为白色。其他选项区域全是 (200,200,200),灰度 = 200 ≥ 132,无黑色像素,未填涂。答案为 A。
参考图如下:

6 12
10 10 10 10 10 10 10 10 10 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
10 10 10 10 10 10 10 10 10 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
10 10 10 10 10 10 10 10 10 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 10 10 10 10 10 10 10 10 10
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 10 10 10 10 10 10 10 10 10
200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 10 10 10 10 10 10 10 10 10
2
0 0 2 2 0 3 2 5 0 6 2 8 0 9 2 11
3 0 5 2 3 3 5 5 3 6 5 8 3 9 5 11
AD
数据范围
- 保证每个矩形区域至少包含 1 个像素
- 保证每题有且仅有一个选项被填涂
- 各选项的矩形区域不会重叠