洛谷P1101 單詞方陣

2022-05-20 13:39:02 字數 697 閱讀 5077

題目大意:給一 \(n \times n\) 的字母方陣,內可能蘊含多個 \(「yizhong」\) 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用*代替,以突出顯示單詞。

題解:首先每個單詞擺放的方向要相同。因此,搜素對應的狀態應為當前位置的座標,需要比對的第幾個字母和面朝哪個方向。搜尋時因為乙個字母可能被多個字串公用,因此,不是很方便確定乙個字母是否會不被列印,但是若經過這個字母可以組成單詞,則表明該字母一定在輸出時會被列印出來。所以,可以採用乙個 vis 陣列表示該字母是否需要被列印即可。

**如下

#include using namespace std;

const int maxn=110;

char mp[maxn][maxn],s[maxn]="yizhong";

int n;bool vis[maxn][maxn];

void read_and_parse()

const int dx=;

const int dy=;

bool dfs(int x,int y,int dir,int idx)

void solve()

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

}int main()

洛谷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...