題目描述
給一nxn的字母方陣,內可能蘊含多個「yizhong」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,
單詞與單詞之間[color=red]可以[/color]交叉,因此有可能共用字母。輸出時,將不是單詞的字母用「*」代替,以突出顯示單詞。例如:
輸入: 輸出:
8qyizhong *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矩陣。
題解:
直接暴力。
用陣列a讀入,假設在某個點是「y」,那麼往八個方向擴充套件6個單位,如果可以擴充套件,則判斷在這個方向上的字元是否為「yizhong」,是則用陣列f記錄。
最後輸出,陣列f無記錄的輸出「*」,else輸出a[i][j]。
**:
有點醜啊!!!
#include
#include
using
namespace
std;
int n,f[101][101],kf;
char a[101][101];
char st="yizhong";
int main()
if (kf) for (int k=0;k<=6;k++) f[i][j+k]=1;
if (i+6
<=n) kf=1; else kf=0;
if (i+6
<=n)
for (int k=1;k<=6;k++)
if (a[i+k][j]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i+k][j]=1;
if (j-6>=0) kf=1; else kf=0;
if (j-6>=0)
for (int k=1;k<=6;k++)
if (a[i][j-k]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i][j-k]=1;
if (i-6>0) kf=1; else kf=0;
if (i-6>0)
for (int k=1;k<=6;k++)
if (a[i-k][j]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i-k][j]=1;
if ((i-6>0)&&(j-6>=0)) kf=1; else kf=0;
if ((i-6>0)&&(j-6>=0))
for (int k=1;k<=6;k++)
if (a[i-k][j-k]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i-k][j-k]=1;
if ((i-6>0)&&(j+6
1; else kf=0;
if ((i-6>0)&&(j+6
for (int k=1;k<=6;k++)
if (a[i-k][j+k]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i-k][j+k]=1;
if ((i+6
<=n)&&(j-6>=0)) kf=1; else kf=0;
if ((i+6
<=n)&&(j-6>=0))
for (int k=1;k<=6;k++)
if (a[i+k][j-k]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i+k][j-k]=1;
if ((i+6
<=n)&&(j+6
1; else kf=0;
if ((i+6
<=n)&&(j+6
for (int k=1;k<=6;k++)
if (a[i+k][j+k]!=st[k])
if (kf) for (int k=0;k<=6;k++) f[i+k][j+k]=1;
}for (int i=1;i<=n;i++)
return
0;}
洛谷P1101單詞方陣
整體的思路 在矩陣中找到 y 然後對 y 進行八個方向的搜尋 用cmp陣列存 yizhong 在每乙個方向中和cmp進行比較,若存在任意乙個不同,則處理下乙個方向。include includeusing namespace std const int dx 方向陣列 const int dy co...
洛谷P1101 單詞方陣
給一n times nn n的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 qy...
洛谷 P1101 單詞方陣
p1101 單詞方陣 題解 使用染色的方法,一條路染下去,注意只往乙個方向染色 上 include include include using namespace std const string p yizhong int n 棋盤大小 增量陣列,八個方向 int x 8 int y 8 char...