1003二哥养细菌
来源:互联网 发布:如何修改tomcat的端口 编辑:程序博客网 时间:2024/04/28 07:22
题目描述
二哥不仅种苹果和花生,还养了很多细菌。二哥的细菌培养皿成方格形,边长为L。长期培养后,二哥发现了细菌繁殖的规律:最初每个格子里的细菌及其后代都会独立繁殖,每次繁殖都会在其上下左右四个相邻的格子里产生新的细菌,而已经存在的细菌在培养皿充满细菌之前都不会死亡。另外,有一些格子里可能还有抗生素,细菌在有抗生素的格子里无法繁殖。
二哥于是发明了一个游戏:取一个新的培养皿,在某些格子里放入细菌或抗生素,然后观察细菌不断繁殖直至充满整个培养皿的所有没有抗生素的格子。不过二哥已经对这个游戏厌烦了,他现在只想知道经过多少轮繁殖后,细菌会充满整个培养皿(不算有抗生素的格子)。
输入格式
第1行有1个整数,边长L。
第2行至第L+1行,每行有L个整数,取值为0、1或2。0表示格子里最初没有细菌,1表示格子里最初有细菌,2表示格子里最初有抗生素。
输出格式
输出一个整数m,表示经过m轮繁殖后,细菌会充满整个培养皿(不算有抗生素的格子)。
说明
【样例解释】 第一轮繁殖:
2 1 0
1 1 1
0 1 0
第二轮繁殖:
2 1 1
1 1 1
1 1 1
【数据范围】
对于全部数据:
Sample Input
32 0 00 1 00 0 0
Sample Output
2
#include<iostream>using namespace std;struct box{ int value; bool status; box(){value=0;status=false;} };int main(){ int L;//输入细菌器皿边长 cin>>L; if(L>100||L<0)return 0; box array[L][L]; bool judge=false; int count=-1; for(int i=0;i<L;++i) for(int j=0;j<L;++j) cin>>array[i][j].value; while(!judge){ judge=true; count++; for(int i=0;i<L;++i) for(int j=0;j<L;++j){ if(array[i][j].value==0){ if(((j-1)>=0&&array[i][j-1].value==1)||((j+1)<L&&array[i][j+1].value==1) ||((i-1)>=0&&array[i-1][j].value==1)||((i+1)<L&&array[i+1][j].value==1)) array[i][j].status=true; } } for(int i=0;i<L;++i) for(int j=0;j<L;++j){ if(array[i][j].status==true){ array[i][j].value=1; array[i][j].status=false; judge=false; } } } cout<<count; return 0;}
- 1003二哥养细菌
- sjtu 1003 二哥养细菌
- 二哥养细菌
- 神一样的二哥养细菌(难题)
- sjtu oj 1003.二哥养细菌
- 算法之路之征服上海交大的oj- 二哥养细菌
- 细菌繁殖
- 手机细菌
- 细菌繁殖
- 细菌繁殖
- 细菌增殖
- 超级细菌
- 二哥,你好吗?
- sjtu1001.二哥摘苹果
- sjtu1002.二哥种花生
- 皮二哥,讲究人
- 二哥摘苹果问题
- 1038. 二哥的约瑟夫
- ruby curses库好记API
- 黑马程序员_字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- ubuntn 下安装 jdk
- jquery.attr
- ACE在Linux下编译安装
- 1003二哥养细菌
- 奇怪的比赛--蓝桥杯
- 一个ImageButton的不同状态调用不同的图片
- The Server Object construction attempt has failed because the Startup Timeout Interval has elapsed解决
- tomcat局部数据源
- 在Android4.0 SDK的tools目录中运行模拟器emulator的环境变量的设置
- 1004西西弗斯式的命运
- 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
- 有关C#语言与.NET框架的常见几个试题