Pro.ID1514 Title识别骰子 Title链接http://10.20.2.8/oj/exercise/problem?problem_id=1514 AC18 Submit207 Ratio8.70% 时间&空间限制描述ZQU是一家专注于研究互联网游戏技术的高科技公司。一家市场调查公司告诉他们,他们开发的技术很可能会在潜在用户群中流行起来。无论是"麻将","大富翁"还是"飞行棋",这些游戏的大多数都涉及到扔骰子的游戏阶段。 当然啦,如果允许玩家先扔骰子,然后把结果输入到计算机中,将是不合理的,因为这样很容易作弊(例如他扔出骰子得到2点,却在电脑中输入6点)。因此,ZQU决定使用摄像头对着掷出的骰子,拍下照片,分析照片,自动识别骰子上的点数。 因此他们迫切需要编写一个程序,对一幅图片中的几个骰子,识别出骰子上面的点数。 对输入的图片作如下几点假设。图片只含3种不同的像素:背景(background)、骰子(dice)以及骰子上的点(dot)。两个像素是相连的,当且仅当他们有共同的边,对角的不算。如下图的像素A和像素B是相连的,B和C则不直接相连。 考虑像素集S,当S中的每一对像素(a,b),存在一个像素序列a1, a2, ..., ak,使得a = a1,b = ak ,且 ai 和ai+1 是直接相连的( 1 ≤ i < k ) ,此时我们说集合S中的像素是相连的。 我们把不含背景像素的"最大相连像素集"视为骰子(dice)。最大相连的意思是不能把其他任何一个非背景像素加入到集合S中了,除非把这个像素从其他集合中剥离出来。同样的,点(dot)的最大相连像素集构成骰子上的一个点(dot)。 输入输入包含多幅图片,每幅图片可能含有多个骰子。每幅图片的第一行是2个整数w和h,分别表示图片的宽度和高度。5 ≤ w, h ≤ 50 接下来是h行,每行有w个字符。字符"."表示背景像素(background),"*"表示骰子像素(dice),"X"表示骰子上的点像素(dot)。 由于光学畸变的原因,骰子可能呈现不同的形状,不一定是四方形的。每幅图片至少包含一只骰子,骰子上的点数只能是从1到6其中的一个数值。 当w = h = 0时表示输入结束。 输出Description ZQU是一家专注于研究互联网游戏技术的高科技公司。一家市场调查公司告诉他们,他们开发的技术很可能会在潜在用户群中流行起来。无论是"麻将","大富翁"还是"飞行棋",这些游戏的大多数都涉及到扔骰子的游戏阶段。 当然啦,如果允许玩家先扔骰子,然后把结果输入到计算机中,将是不合理的,因为这样很容易作弊(例如他扔出骰子得到2点,却在电脑中输入6点)。因此,ZQU决定使用摄像头对着掷出的骰子,拍下照片,分析照片,自动识别骰子上的点数。 因此他们迫切需要编写一个程序,对一幅图片中的几个骰子,识别出骰子上面的点数。 对输入的图片作如下几点假设。图片只含3种不同的像素:背景(background)、骰子(dice)以及骰子上的点(dot)。两个像素是相连的,当且仅当他们有共同的边,对角的不算。如下图的像素A和像素B是相连的,B和C则不直接相连。 考虑像素集S,当S中的每一对像素(a,b),存在一个像素序列a1, a2, ..., ak,使得a = a1,b = ak ,且 ai 和ai+1 是直接相连的( 1 ≤ i < k ) ,此时我们说集合S中的像素是相连的。 我们把不含背景像素的"最大相连像素集"视为骰子(dice)。最大相连的意思是不能把其他任何一个非背景像素加入到集合S中了,除非把这个像素从其他集合中剥离出来。同样的,点(dot)的最大相连像素集构成骰子上的一个点(dot)。 Input 输入包含多幅图片,每幅图片可能含有多个骰子。每幅图片的第一行是2个整数w和h,分别表示图片的宽度和高度。5 ≤ w, h ≤ 50 接下来是h行,每行有w个字符。字符"."表示背景像素(background),"*"表示骰子像素(dice),"X"表示骰子上的点像素(dot)。 由于光学畸变的原因,骰子可能呈现不同的形状,不一定是四方形的。每幅图片至少包含一只骰子,骰子上的点数只能是从1到6其中的一个数值。 当w = h = 0时表示输入结束。 Output 对每一轮掷出的骰子,首先输出编号,即图片的编号。然后输出图片上骰子的点数,从小到大输出。见输出样例。 每个测试用例后面输出一个空行。 Sample Input 30 15 Sample Output Throw 1 Author 样例输入30 15 样例输出Throw 1 提示作者 |