給一n \times nn×n的字母方陣,內可能蘊含多個「yizhong
」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用*
代替,以突出顯示單詞。例如:
輸入:
8 輸出:
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g
輸入格式:
第一行輸入乙個數nn。(7 \le n \le 1007≤n≤100)。
第二行開始輸入n \times nn×n的字母矩陣。
輸出格式:
突出顯示單詞的n \times nn×n矩陣。
輸入樣例#1:複製
7輸出樣例#1:複製aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
*******輸入樣例#2:複製*******
*******
*******
*******
*******
*******
8輸出樣例#2:複製qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
*yizhong深搜,注意按照乙個方向搜:gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
#include#define m 105
using namespace std;
const string st="yizhong";
int dx[8]=;
int dy[8]=;
struct nodek[10];//存放路徑
bool vis[m][m];//標記路徑
char a[m][m];//地圖
int n;
void deep(int x,int y,int m,string t,int dir)
// x,y,第m步,當前字串,當前方向
;//把當前的位置存到路徑
if(m==6)//如果找到最後乙個字元了
int ix=x+dx[dir],iy=y+dy[dir];//給定方向走
deep(ix,iy,m+1,t+a[ix][iy],dir);
}int main()
return 0;
}
洛谷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 單詞方陣
p1101 單詞方陣 題解 使用染色的方法,一條路染下去,注意只往乙個方向染色 上 include include include using namespace std const string p yizhong int n 棋盤大小 增量陣列,八個方向 int x 8 int y 8 char...