集训作业 洛谷P1101 单词方阵

这个题的长度真的有点长,我直接放图片吧

这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢。

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
string a[300],shu[300];
int aa[8]={0,-1,-1,-1,0,1,1,1},bb[8]={1,1,0,-1,-1,-1,0,1},z,a1,a2;
string s="yizhong";
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            shu[i]+='0';//初始化
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i][j]=='y')//开头出现了!
            {
                for(int x=0;x<8;x++)//8向搜索
                {
                    z=0;
                    a1=i;
                    a2=j;
                    for(int ss=0;ss<6;ss++)//yizhong去掉y还有6位
                    {
                        a1+=aa[x];
                        a2+=bb[x];
                        if(a1<0||a1>n||a2<0||a2>n)//越界了
                        {
                            z=1;
                        }
                        if(a[a1][a2]!=s[ss+1])//不匹配
                        {
                            z=1;    
                        }  
                        if(z==1)
                        {
                            break;
                        }        
                    }
                    a1=i;
                    a2=j;
                    if(z==0)//如果找到了一个完整的yizhong
                    {
                    	for(int i=0;i<7;i++)//替换
                    	{
                    		shu[a1][a2]=a[a1][a2];
                    		a1+=aa[x];
                    		a2+=bb[x];
                    	}
                    }
                }
            }
        }
    }
    for(int i=0;i<n;i++)
    {
    	for(int j=0;j<n;j++)
    	{
    		if(shu[i][j]=='0')处理‘*’
    		{
    			shu[i][j]='*';
    		}
    	}
    }
    for(int i=0;i<n;i++)//输出
    {
    	cout<<shu[i]<<endl;
    }
    return 0;
}

这个写的有点水,没看懂的话可以去隔壁的dgdger大佬哪里,我实在没找到其他可讲的地方了。

原文地址:https://www.cnblogs.com/lichangjian/p/12889684.html