题目名称 897. 夜空繁星
输入输出 starry.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 5
题目来源 Gravatarsywgz 于2012-07-11加入
开放分组 全部用户
提交状态
分类标签
IOI USACO 搜索法 散列
分享题解
通过:8, 提交:19, 通过率:42.11%
GravatarHouJikan 100 0.003 s 0.36 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 100 0.005 s 0.60 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 100 0.005 s 0.60 MiB C++
Gravatarwuzuofan 100 0.009 s 6.54 MiB C++
Gravatarcstdio 100 0.151 s 0.29 MiB C++
Gravatarmikumikumi 100 0.325 s 0.73 MiB C++
Gravatarmikumikumi 100 0.326 s 0.73 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 100 0.356 s 0.73 MiB C++
GravatarHouJikan 60 0.003 s 0.36 MiB C++
Gravatarmildark 60 0.079 s 0.37 MiB C++
关于 夜空繁星 的近10条评论(全部评论)
Hash?
GravatarYGOI_真神名曰驴蛋蛋
2020-02-08 22:11 4楼
这题太麻烦
Gravatarmikumikumi
2015-10-20 19:54 3楼
真心是醉了。。各种恶心
大概思路是用dfs分理出每一个星座的星星,然后以左上角为1,1记录该星座内星星的相对位置,判断相等时只要相对位置可以通过平移得到就算相等
具体见代码
GravatarHouJikan
2014-08-29 08:24 2楼
1.Linux下读一坨字符的问题……
2.感谢NOI2013团体赛:圈地为王
3.标字母的方式是:从上到下,从左到右,按遇到的顺序来
Gravatarcstdio
2013-11-13 21:05 1楼

897. 夜空繁星

★★☆   输入文件:starry.in   输出文件:starry.out   简单对比
时间限制:1 s   内存限制:128 MiB


USACO/starry

描述


高高的星空,簇簇闪耀的群星形态万千。一个星座(cluster)是一群连通的星组成的非空集合,所谓连通是指水平,垂直或者对角相邻。一个星座不能是另一个更大星座的一部分。
星座可以相似(similar)。如果两个星座有相同的形状,而且包括相同数目的星体,那么不管其方向性如何,就算相似。一般而言,星座可能的方向有八个,如图1所示。


图1 相似的八个星座

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

PROGRAM NAME: starry

INPUT FORMAT(file starry.in)


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

OUTPUT FORMAT(file starry.out)
输出文件记录了天体图与文件STARRY.IN相似,不同之处在于,各个星座按照“任务”中的要求进行了标识(mark)。

SAMPLE INPUT (file starry.in)
23
15
10001000000000010000000
01111100011111000101101
01000000010001000111111
00000000010101000101111
00000111010001000000000
00001001011111000000000
10000001000000000000000
00101000000111110010000
00001000000100010011111
00000001110101010100010
00000100110100010000000
00010001110111110000000
00100001110000000100000
00001000100001000100101
00000001110001000111000


图2. 天空景象

SAMPLE OUTPUT (file starry.out)
a000a0000000000b0000000
0aaaaa000ccccc000d0dd0d
0a0000000c000c000dddddd
000000000c0b0c000d0dddd
00000eee0c000c000000000
0000e00e0ccccc000000000
b000000e000000000000000
00b0f000000ccccc00a0000
0000f000000c000c00aaaaa
0000000ddd0c0b0c0a000a0
00000b00dd0c000c0000000
000g000ddd0ccccc0000000
00g0000ddd0000000e00000
0000b000d0000f000e00e0b
0000000ddd000f000eee000
这是上述输入实例的一个可能的结果。请注意,该输出文件对应于下面的天空景象。


图 3. 星座标识后的天体图

Constraints
0 <= W (天体图的宽度) <= 100
0 <= H (天体图的深度) <= 100
0 <= 星座的数目 <= 500
0 <= 不相似的星座数目 <= 26 (a..z)
1 <= 各星座包含的星体数目 <= 160