在潘多拉星球,纳威人也热衷于搞房地产卖给中国人。他们把空中的悬浮山切割成一个个的立方体,然后在上面盖房子。一个立方体就是一个公寓楼。在悬浮山的表面上,重力是朝向山体中心的,因此每个面都有能住人的房间。作为到处投资的中国IT新贵,你看上了一座悬浮公寓,想知道这个公寓里面有多少个房间,以及最大的房间有多大。自己写个程序解决这个问题吧。
立方体的每个面被划分为k*k(k<20)个方格,方格有可能是平地,也有可能墙,墙无法通过。连续的平地可以形成房间。房间可以跨越棱线。
平地用0表示,墙用1表示。
输入第一行为测试数据组数。 对每组测试数据: 输入第一行为k,接下来为6*k行,每行k个字符(空格分开,平地用0表示,墙用1表示),分别表示ABDC,BFHD,FEGH,EACG,EFBA,GHDC这6个平面。 每个平面第一个字母是左上角,第二个字母是右上角。
输出房间个数和最大的房间大小(包含的平地格子数目)
1 3 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0
6 12
遍历每个未访问的点查找最大房间,具体实现分析可看此文章: http://blog.csdn.net/pku_zzy/article/details/51648457 在代码中多加了点日志。
新闻热点
疑难解答