Problem 5C. the life game on line
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
Problem 5C. the life game on line
时间限制:1000ms
空间限制:256MB
题目背景
生命游戏(game of life)是康威提出的一种游戏,在一个二位的平面上,每一格代表一个细胞。有生或者死两种状态。(可以b站BV1rJ411n7ri了解一下)
游戏规则:
当周围仅有1个或没有存活细胞时, 原来的存活细胞进入死亡状态。
当周围有2个或3个存活细胞时, 网格保持原样。
当周围有4个及以上存活细胞时,原来的存活细胞亦进入死亡状态。
当周围有3个存活细胞时,空白网格变成存活细胞。
题目描述
现在让我们在一个一维的线上玩玩生命游戏。首先一个左右都无限长的表格,每个格子分别代表一个细胞,每个细胞有生或死两种状态。初始在坐标为0处有一个细胞,其他坐标大于0和小于0的地方都没有细胞存活,我们称之为第一代。接下来每一代,每个细胞的生与死只取决于上一代的相同位置和相邻的细胞的生存状态。也就是说上一代的3个细胞一共有\(2^3=8\)种可能性。通过改变这8种可能性下一代细胞生或死,我们可以指定很多种不同的规则,会有许多截然不同的结果。
首先,我们默认上一代三个细胞全死的情况这一代一定是死(否则结果就没有意思了)。具体来说所有的规则都可以用一个整数表示,就如76,转换为包含前导零7位二进制数为1001100。同样上一代三个细胞的状态也可以用二进制表示,如死活活表示成011对应10进制3。那么规则76(1001100)表示,上一代为1(001),4(100),5(101)时,这个细胞活;反之上一代为2(010),3(011),6(110),7(111)时,这个细胞为死。
现在我们要求规则为某个值r时,从一到n代细胞在坐标-n+1到n-1之间细胞存活的情况,并且以样例的形式输出出来。
输入格式
输入一行,包含两个整数,r和n。
输出格式
n+1行每行2*n+1个字符表示细胞的状态,其中活细胞用'0'死细胞用'_'。
样例输入1
127 10
样例输出1
_________0_________
________000________
_______00000_______
______0000000______
_____000000000_____
____00000000000____
___0000000000000___
__000000000000000__
_00000000000000000_
0000000000000000000
样例1解释
127二进制为1111111,上一代三个细胞中只要有一个活着,这个细胞就能活。因此每代细胞数量加二。
样例输入2
72 15
样例输出2
______________0______________
_____________0_0_____________
____________0___0____________
___________0_0_0_0___________
__________0_______0__________
_________0_0_____0_0_________
________0___0___0___0________
_______0_0_0_0_0_0_0_0_______
______0_______________0______
_____0_0_____________0_0_____
____0___0___________0___0____
___0_0_0_0_________0_0_0_0___
__0_______0_______0_______0__
_0_0_____0_0_____0_0_____0_0_
0___0___0___0___0___0___0___0
样例输入3
110 15
样例输出3
______________0______________
_____________000_____________
____________0__00____________
___________0000_00___________
__________0___00_00__________
_________000_0_00_00_________
________0__0000_00_00________
_______0000___00_00_00_______
______0___00_0_00_00_00______
_____000_0_0000_00_00_00_____
____0__0000___00_00_00_00____
___0000___00_0_00_00_00_00___
__0___00_0_0000_00_00_00_00__
_000_0_0000___00_00_00_00_00_
0__0000___00_0_00_00_00_00_00
数据范围及约定
对于100%的数据,\(0 \le r \le 127\),\(1 \le n \le 200\)