四:zj之轉化模式 眾所舟舟知……zj同學會轉換模式,我們對兩種模式的定義為;♀♂,其實zj的模式轉換是建立在他身體的細胞模式轉換之上的,比如說這裡有6*6的細胞: ♀♂♀♂♀♂
所以大家就知道為什麼zj的模式總是介於兩者之間了,因為他的每個細胞的模式不一樣! zj的細胞和zj一樣有很多的壞毛病,當乙個細胞轉換模式時,他也會使它上,下,左,右四個細胞轉換模式,但是仍算轉換一步。比如,對於上圖(1,2)的轉換模式後總的模式變為:
(3,3)轉換模式後總的模式變為:
好了,現在問題來了,zj現在想把n*n的細胞全部轉換成♂模式,若不能轉化輸出『no』,若能輸出最少需要幾步。
注意:為了描述生動應用了♀♂符號,但word中的符號與pascal中的不一樣,讀入以pascal中的為準,pascal中為了轉換方便最好使用ascii碼,♂11,♀12.
樣例輸入:(資料請貼上change.in)(粘到pascal中就能看到了)
樣例輸出:
範圍: 50% n<=5; 100% n<=10;
列舉+模擬 (規定 ♂ 為 1,♀ 為 0) 首先, dfs 第一行, dfs 它是變還是不變。然後從第二行開始模擬,如果第一行對應的變了,那麼他一定變,以此類推。如果第一行不是 1 ,那麼為了讓第一行全變成 1 ,則,它一定要變,然後在模擬第三行。。。。。。 最後判斷最後一行是否全是 1 ,如果全是 1 ,則成功,反之,輸出 no 或繼續 dfs 第一行。
**(xmc)
var i,j,k,n,m,p,ii,jj:longint;
a,b:array[1..11,1..11] of integer;
ch:char; sum,ans:longint;
flag:boolean;
procedure init;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(ch);
if ord(ch)=11 then a[i,j]:=1 else a[i,j]:=0;
end;
readln;
end;
end;
procedure main;
begin
ans:=maxlongint;
for i:=0 to (1sum:=0;
b:=a;
for j:=1 to n do
if (i and (1<<(n-j)))<>0 then
begin
inc(sum);
b[1,j]:=1-b[1,j];
b[2,j]:=1-b[2,j];
if (j<>1) then b[1,j-1]:=1-b[1,j-1];
if (j<>n) then b[1,j+1]:=1-b[1,j+1];
end;
for ii:=2 to n do
for jj:=1 to n do
begin
if b[ii-1,jj]=0 then
begin
inc(sum);
b[ii,jj]:=1-b[ii,jj];
if (ii<>n) then b[ii+1,jj]:=1-b[ii+1,jj];
if (jj<>1) then b[ii,jj-1]:=1-b[ii,jj-1];
if (jj<>n) then b[ii,jj+1]:=1-b[ii,jj+1];
end;
end;
flag:=true;
for ii:=1 to n do
if b[n,ii]=0 then flag:=false;
if flag and (sumend;
if ans=maxlongint then writeln('no') else writeln(ans);
end;
begin
assign(input,'change.in');reset(input);
assign(output,'change.out');rewrite(output);
init;
main;
close(input); close(output);
end.
Block Voting 解題報告
這道題做的有點狼狽,效率不高,差一點就tle的ac了。看status裡的,ac的時間大多數都是0ms的。肯定有乙個更有效率的演算法的。下面說下我的狼狽演算法。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1223 問題描述 求每個party的權值。第i...
Safebreaker 解題報告
又是吉林大學一道acm題目,題目很簡單,直接暴力解決。出處 http acm.jlu.edu.cn joj showproblem.php?pid 1718 問題描述 對乙個給定數0000 9999 根據一系列猜測,判斷這個數是否存在,存在的話,是否唯一 例如 3321,給定數 作出猜測,1223 ...
路由 解題報告
路由 問題描述 有乙個tcp ip網路 每台計算機都有乙個或多個網路介面。每個介面根據它的ip位址和子網掩碼來識別 即兩個4位元組的數,兩個字 節之間有乙個 號.子網掩碼有乙個二進位制表示法 有k個 1 然 後是 m 個 0 k m 8 4 32 如 212.220.35.77 是乙個 ip 地 址...