P1101 單詞方陣

2021-07-26 13:18:11 字數 2442 閱讀 7311

給一nxn的字母方陣,內可能蘊含多個「yizhong」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間[color=red]可以[/color]交叉,因此有可能共用字母。輸出時,將不是單詞的字母用「*」代替,以突出顯示單詞。例如:

輸入:

8 輸出:

qyizhong *yizhong

gydthkjy gy******

nwidghji n*i*****

orbzsfgz o**z****

hhgrhwth h***h***

zzzzzozo z****o**

iwdfrgng i*****n*

yyyygggg y******g

輸入格式:

第一行輸入乙個數n。(7<=n<=100)。

第二行開始輸入nxn的字母矩陣。

輸出格式:

突出顯示單詞的nxn矩陣。

輸入樣例#1:

7

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

const

c:array[1..7]of char=('y','i','z','h','o','n','g');

ss:array[1..8]of longint=(-1,-1,-1,0,0,1,1,1);

sss:array[1..8]of longint=(-1,0,1,-1,1,-1,0,1);

var  a:array[0..101,0..101]of char;

b:array[0..101,0..101]of boolean;

i,j,k,n,m:longint;

s:ansistring;

p:boolean;

procedure init;

var  i,j,k:longint;

begin

readln(n);

for i:=1 to n do

begin

readln(s);

for j:=1 to n do 

a[i,j]:=s[j];

end;

end;

function aa(k,l,r,t:longint):boolean;

var  x,i,j:longint;

p:boolean;

begin 

p:=false;

if k>7 then exit(true);

if a[l,r]<>c[k] then exit(false);

if k=1 then 

begin

for x:=1 to 8 do

begin

i:=l+ss[x];

j:=r+sss[x];

if aa(k+1,i,j,x) then begin b[l,r]:=true;p:=true; end;

end;

endelse 

begin

i:=l+ss[t];

j:=r+sss[t];

if aa(k+1,i,j,t) then begin b[l,r]:=true;p:=true; end;

end;

if p then exit(true) else exit(false);

end;

begin

init;

for i:=1 to n do

for j:=1 to n do

begin

if (b[i,j]) then continue;

if (not(aa(1,i,j,0))) then b[i,j]:=false

else b[i,j]:=true;

end; 

for i:=1 to n do

for j:=1 to n do 

if not(b[i,j]) then a[i,j]:='*';

for i:=1 to n do

begin

for j:=1 to n do write(a[i,j]);

writeln;

end;

end.

輸出樣例#1:

*******

*******

*******

*******

*******

*******

*******

P1101 單詞方陣

題目鏈結 題目描述 給一 n n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...

P1101 單詞方陣

給一 n times nn n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...

P1101 單詞方陣

題目描述 給一n n的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 qyizho...