單詞方陣 洛谷 P1101

2022-08-10 17:27:16 字數 2283 閱讀 9359

題目描述

給一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

輸出樣例#1:

*******

*******

*******

*******

*******

*******

*******

還是一道比較水的搜尋的,可以通過向八個方向判斷是否存在"yizhong",雖然比較長,但是主要是複製貼上,並且可以加上乙個如果當前位置到邊界距離不足時直接break的剪枝,所以,我選擇了披著dfs皮的模擬

上**:

1 #include2 #include3 #include4

using

namespace

std;

5intn;6

char a[101][101],b[101][101],t[8]=;//先把yizhong存起來

7bool

flag;

8void dfs(int x,int

y)14}15

if(flag==0)19

}20 flag=0;21

}22if(y+6

<=n)27}

28if(flag==0)32

}33 flag=0;34

}35if(x+6

<=n&&y+6

<=n)40}

41if(flag==0)45

}46 flag=0;47

}4849if(x+6

<=n)54}

55if(flag==0)59

}60 flag=0;61

}62if(x+6

<=n&&y-6>=1)67}

68if(flag==0)72

}73 flag=0;74

}75if(y-6>=1)80}

81if(flag==0)85

}86 flag=0;87

}88if(x-6>=1&&y-6>=1)93}

94if(flag==0)98

}99 flag=0

;100

}101

if(x-6>=1)

106}

107if(flag==0

)111

}112 flag=0

;113

}114

}115

intmain()

121for(int i=1;i<=n;i++)

124for(int i=1;i<=n;i++)

128}

129for(int i=1;i<=n;i++,puts(""

))130

for(int j=1;j<=n;j++)

133return0;

134 }

洛谷P1101單詞方陣

整體的思路 在矩陣中找到 y 然後對 y 進行八個方向的搜尋 用cmp陣列存 yizhong 在每乙個方向中和cmp進行比較,若存在任意乙個不同,則處理下乙個方向。include includeusing namespace std const int dx 方向陣列 const int dy co...

洛谷 P1101 單詞方陣

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

洛谷P1101 單詞方陣

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