2.1 題目描述
bob 發現了一群有趣的細胞。
這群細胞排列成乙個n m 的矩陣。每個細胞有兩個狀態:放電狀態和平靜
狀態。它們每秒鐘都會按以下的規則轉換狀態:
首先我們定義,乙個細胞的鄰居為它周圍的8 個細胞。同時設k 為某乙個細
胞的處於放電狀態的鄰居的個數。
若k < 2,則這個細胞在下一秒因電量不足而變為/保持平靜狀態。
若k = 2,則這個細胞在下一秒保持原來的狀態。
若k = 3,則這個細胞在下一秒因得到充足的電量而變為/保持放電狀態。
若k > 3,則這個細胞在下一秒因過載而變為/保持平靜狀態。
bob 觀察了這些細胞現在所處於的狀態。他想**t 秒後這些細胞的狀態。
2.2 輸入格式
第一行3 個正整數n; m; t。
接下來n 行,每行乙個長度為m、只包含01 的字串,表示每個細胞的初
始狀態。』1』 表示放電狀態,』0』 表示平靜狀態。
2.3 輸出格式
輸出n 行,每行乙個長度為m、只包含01 的字串,表示每個細胞的t 秒
後的狀態。』1』 表示放電狀態,』0』 表示平靜狀態。
分析:統計出每個細胞鄰居放電個數,然後再改變狀態。
**
const
maxn=1000;
dx:array[1..8] of longint=(-1,-1,0,1,1,1,0,-1);
dy:array[1..8] of longint=(0,1,1,1,0,-1,-1,-1);
var a:array[0..maxn,0..maxn] of char;
b:array[0..maxn,0..maxn] of longint;
n,m,t,i,j,k,l,x,y:longint;
function
check
(x,y:longint):boolean;
begin
check:=true;
if (x<1) or (y<1) or (x>n) or (y>m) then
exit(false);
end;
begin
//assign(input,'biotech.in');reset(input);
//assign(output,'biotech.out');rewrite(output);
readln(n,m,t);
for i:=1
to n do
begin
for j:=1
to m do
read(a[i,j]);
readln;
end;
for l:=1
to t do
begin
fillchar(b,sizeof(b),0);
for i:=1
to n do
for j:=1
to m do
for k:=1to8
dobegin
x:=i+dx[k];
y:=j+dy[k];
if check(x,y) then
if a[x,y]='1'
then inc(b[i,j]);
end;
for i:=1
to n do
for j:=1
to m do
begin
if b[i,j]<2
then
if a[i,j]='1'
then a[i,j]:='0';
if b[i,j]=3
then
if a[i,j]='0'
then a[i,j]:='1';
if b[i,j]>3
then
if a[i,j]='1'
then a[i,j]:='0';
end;
end;
for i:=1
to n do
begin
for j:=1
to m do
write(a[i,j]);
writeln;
end;
close(input);close(output);
end.
5 18特長生模擬題 Biotech
bob 發現了一群有趣的細胞。這群細胞排列成乙個n m 的矩陣。每個細胞有兩個狀態 放電狀態和平靜 狀態。它們每秒鐘都會按以下的規則轉換狀態 首先我們定義,乙個細胞的鄰居為它周圍的8 個細胞。同時設k 為某乙個細 胞的處於放電狀態的鄰居的個數。若k 2,則這個細胞在下一秒因電量不足而變為 保持平靜狀...
特長生模擬 採藥
題目大意 凡凡要去採藥,他採的藥不僅要求揹包的總空間v能放得下所採的藥,還要求藥草的總質量不能超過凡凡所能承受的範圍m。現在給出n種珍惜的藥材,對於每個藥材凡凡都會精準地目測出其質量a i 體積b i 和價值c i 求凡凡所能採到的藥材的最大價值。注意 每種藥材只有乙個。30 資料,所有藥草質量a ...
5 14特長生模擬 朋友
mxy 即將前往新世界。在前往新世界的過程中,ta 遇見了兩種人。一種是只和lowb 做朋友,即當且僅當自己 的能力值大於對方時他們會成為朋友,另一種是大神我們做朋友,即當且僅當自己的能力 值小於對方時他們會成為朋友。現在告訴你兩種人的能力值。請你計算一共有多少對友好關係。排序 二分,因為排好序了,...