日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

1003. 二哥养细菌—java

發(fā)布時(shí)間:2025/3/20 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1003. 二哥养细菌—java 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1003. 二哥養(yǎng)細(xì)菌

題目描述

二哥不僅種蘋(píng)果和花生,還養(yǎng)了很多細(xì)菌。二哥的細(xì)菌培養(yǎng)皿成方格形,邊長(zhǎng)為L(zhǎng)。長(zhǎng)期培養(yǎng)后,二哥發(fā)現(xiàn)了細(xì)菌繁殖的規(guī)律:最初每個(gè)格子里的細(xì)菌及其后代都會(huì)獨(dú)立繁殖,每次繁殖都會(huì)在其上下左右四個(gè)相鄰的格子里產(chǎn)生新的細(xì)菌,而已經(jīng)存在的細(xì)菌在培養(yǎng)皿充滿(mǎn)細(xì)菌之前都不會(huì)死亡。另外,有一些格子里可能還有抗生素,細(xì)菌在有抗生素的格子里無(wú)法繁殖。

二哥于是發(fā)明了一個(gè)游戲:取一個(gè)新的培養(yǎng)皿,在某些格子里放入細(xì)菌或抗生素,然后觀察細(xì)菌不斷繁殖直至充滿(mǎn)整個(gè)培養(yǎng)皿的所有沒(méi)有抗生素的格子。不過(guò)二哥已經(jīng)對(duì)這個(gè)游戲厭煩了,他現(xiàn)在只想知道經(jīng)過(guò)多少輪繁殖后,細(xì)菌會(huì)充滿(mǎn)整個(gè)培養(yǎng)皿(不算有抗生素的格子)。

輸入格式

第1行有1個(gè)整數(shù),邊長(zhǎng)L。

第2行至第L+1行,每行有L個(gè)整數(shù),取值為0、1或2。0表示格子里最初沒(méi)有細(xì)菌,1表示格子里最初有細(xì)菌,2表示格子里最初有抗生素。

輸出格式

輸出一個(gè)整數(shù)m,表示經(jīng)過(guò)m輪繁殖后,細(xì)菌會(huì)充滿(mǎn)整個(gè)培養(yǎng)皿(不算有抗生素的格子)。

說(shuō)明

【樣例解釋】 第一輪繁殖:

2 1 0

1 1 1

0 1 0

第二輪繁殖:

2 1 1

1 1 1

1 1 1

【數(shù)據(jù)范圍】

對(duì)于全部數(shù)據(jù):1L100?,保證最終能夠充滿(mǎn)培養(yǎng)皿(不算有抗生素的格子)。

Sample Input

3 2 0 0 0 1 0 0 0 0

Sample Output

2


這道題很明顯你可以通過(guò)每一次遍歷來(lái)得到答案,但是這是一種效率和低下的辦法,需要n*L^2次,但是如果一個(gè)人在作者道題去模擬這道題時(shí),絕對(duì)不是每次遍歷,而是記住了上一次由0變?yōu)?的位置,所以我們也必須記住位置,這樣的效率最高,為L(zhǎng)^2次。
下面是源代碼 import java.util.ArrayList; import java.util.Scanner;public class Main{private static Scanner in;public static void main(String[] args) {in = new Scanner(System.in);int L = in.nextInt();Tag [][] tag=new Tag[L+2][L+2];ArrayList <Tag> list =new ArrayList<Tag>();for(int i=0;i<L+2;i++){for(int j=0;j<L+2;j++){tag[i][j]=new Tag();if(i==0||i==L+1||j==0||j==L+1){tag[i][j].x=i;tag[i][j].y=j;tag[i][j].flag=true;}else{tag[i][j].x=i;tag[i][j].y=j;tag[i][j].s=in.nextInt();if(tag[i][j].s==1){list.add(tag[i][j]);tag[i][j].flag=true;}if(tag[i][j].s==2){tag[i][j].flag=true;}}}}int a=list.size();int res=0;int count =0;for(int i=0;i<list.size();i++){count++;Tag temp = list.get(i);if(!tag[temp.x-1][temp.y].flag){list.add(tag[temp.x-1][temp.y]);tag[temp.x-1][temp.y].flag=true;}if(!tag[temp.x][temp.y-1].flag){list.add(tag[temp.x][temp.y-1]);tag[temp.x][temp.y-1].flag=true;}if(!tag[temp.x][temp.y+1].flag){list.add(tag[temp.x][temp.y+1]);tag[temp.x][temp.y+1].flag=true;}if(!tag[temp.x+1][temp.y].flag){list.add(tag[temp.x+1][temp.y]);tag[temp.x+1][temp.y].flag=true;}list.remove(i);i--;if(count==a){a=list.size();res++;count=0;}}System.out.println(res-1);} static class Tag{int x;int y;int s;boolean flag;} }

  

轉(zhuǎn)載于:https://www.cnblogs.com/969059506-java/p/3793119.html

總結(jié)

以上是生活随笔為你收集整理的1003. 二哥养细菌—java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。