Skip to content

11327: 【原1327】sky

题目

题目描述

author: JC 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/1327

Description

高高的星空,簇簇闪耀的群星形态万千。一个星座是一群连通的星组成的非空连通星系,这里的连通是指水平,垂直或者对角相邻的两个星星(即八连通)。一个星座不能是另一个更大星座的一部分, 星座可以相似。如果两个星座有相同的形状,而且大小相同(包含的星星数一致),那么不管其方向性如何(旋转、翻转都视为相同的形状),就算相似。一般而言,星座可能的方向有八个。如以下8个为相似的星座。

1327

夜空可以表示为一份天体图,它是一个由字符0和1组成的二维矩阵,字符1表示所在的位置有一颗星;字符0表示该位置上是空的。给定一份天体图,用同一个小写英文标识相似的所有星座。相似的星座必须用相同的字母标识,不同的星座表示为不同的字母。标识一个星座,就是将其中各星体对应的字符1替换为相应的小写字母。下图即为样例的天体图。

1327

Input Format

前两行记录了天体图的宽度W、深度H。而天体图则是由接下来的H行表示,每行包括W个字符。

Output Format

输出一个与输入格式相同的矩阵,其中的1换成小写英文标号。

对于同一个输入,可能会有很多不同的标识,此时,输出字典序最小的标识。即从'a'开始为星座标识,且对于任意两个不相似的星座q,p,令两个星座中最上面一排中,最左边的星星分别在第i1行第j1列,第i2行第j2列。如果有(i1<i2)or(i1=i2)and(j1<j2),则必须满足q的标号小于p的标号(具体见样例)。

Sample Input

23
15
10001000000000010000000
01111100011111000101101
01000000010001000111111
00000000010101000101111
00000111010001000000000
00001001011111000000000
10000001000000000000000
00101000000111110010000
00001000000100010011111
00000001110101010100010
00000100110100010000000
00010001110111110000000
00100001110000000100000
00001000100001000100101
00000001110001000111000

Sample Output

a000a0000000000b0000000
0aaaaa000ccccc000d0dd0d
0a0000000c000c000dddddd
000000000c0b0c000d0dddd
00000eee0c000c000000000
0000e00e0ccccc000000000
b000000e000000000000000
00b0f000000ccccc00a0000
0000f000000c000c00aaaaa
0000000ddd0c0b0c0a000a0
00000b00dd0c000c0000000
000g000ddd0ccccc0000000
00g0000ddd0000000e00000
0000b000d0000f000e00e0b
0000000ddd000f000eee000

Constraints

对于20%的数据,每个星座只包含一个星星。

对于50%的数据,每个星座不超过两个星星。

对于100%的数据,星座数目不超过500,不同星座不超过26个,每个星座的星星不超过160个。

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!