P1101 單詞方陣

2021-10-04 09:46:04 字數 1310 閱讀 5292

傳送門

這道題可以用dfs回溯來做,難點是沿著同一方向擺放。

所以我想的是,如果是』y』那麼就沿著四面八方搜尋,確定方向,然後每一次就按照這個固定的方向。

#include

using

namespace std;

const

int maxn=

1e2+10;

char a[maxn]

[maxn]

,s[10]=

;int n,dx[10]

=,dy[10]

=;bool ok1[maxn]

[maxn]

,ok2[maxn]

[maxn]

;void

dfs(

int k,

int x,

int y,

int p)

return;}

ok1[x]

[y]=

true;if

(p==0)

}}else

} ok1[x]

[y]=

false;}

intmain()

for(

int i=

1;i<=n;i++

) cout<}}

原理相同,下面的可能更好看一些

#include

using

namespace std;

const

int maxn=

1e2+10;

char a[maxn]

[maxn]

,s[10]=

;int n,dx[10]

=,dy[10]

=;bool ok1[maxn]

[maxn]

,ok2[maxn]

[maxn]

;void

dfs(

int k,

int x,

int y,

int p)

return;}

int tx=x+dx[p]

,ty=y+dy[p];if

(tx>=

1&&tx<=n&&ty>=

1&&ty<=n&&a[tx]

[ty]

==s[k+1]

)}intmain()

}for

(int i=

1;i<=n;i++

) cout<}}

P1101 單詞方陣

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

P1101 單詞方陣

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

P1101 單詞方陣

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