P1101:单词方阵

Hello,大家好

又到了人民群众喜闻乐见的博客分享时间

今天我们要讲的是:

洛谷P1101:单词方阵

重要的是——单词方阵这道题

 

题目传送门:https://www.luogu.com.cn/problem/P1101

不知道博客园的超链接怎么插……好心的大神在评论区打出来QQ

 

这道题,不要想着dfs

 

伟大的[数据删除]曾说过

 

‘任何高精尖算法,都可以最原始的方法将其发挥到极致’

 

"骗分过样例,暴力出奇迹"

 

"暴搜挂着机,打表出省一"

 

于是

这道题

我走上了暴搜之路

 

我可是被称为"2019数组暴力搜索作死第一人"的

上代码

#include<bits/stdc++.h>
using namespace std;
char a[10001][10001],b[10001][10001];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
            b[i][j]='*';
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[i][j]=='y')//从左往右
            { 
                if(a[i][j+1]=='i')
                {
                    if(a[i][j+2]=='z')
                    {
                        if(a[i][j+3]=='h')
                        {
                            if(a[i][j+4]=='o')
                            {
                                if(a[i][j+5]=='n')
                                {
                                    if(a[i][j+6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i][j+1]=a[i][j+1];
                                        b[i][j+2]=a[i][j+2];
                                        b[i][j+3]=a[i][j+3];
                                        b[i][j+4]=a[i][j+4];
                                        b[i][j+5]=a[i][j+5];
                                        b[i][j+6]=a[i][j+6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从上往下 
            {
                if(a[i+1][j]=='i')
                {
                    if(a[i+2][j]=='z')
                    {
                        if(a[i+3][j]=='h')
                        {
                            if(a[i+4][j]=='o')
                            {
                                if(a[i+5][j]=='n')
                                {
                                    if(a[i+6][j]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i+1][j]=a[i+1][j];
                                        b[i+2][j]=a[i+2][j];
                                        b[i+3][j]=a[i+3][j];
                                        b[i+4][j]=a[i+4][j];
                                        b[i+5][j]=a[i+5][j];
                                        b[i+6][j]=a[i+6][j];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从左上往左下
            { 
                if(a[i+1][j+1]=='i')
                {
                    if(a[i+2][j+2]=='z')
                    {
                        if(a[i+3][j+3]=='h')
                        {
                            if(a[i+4][j+4]=='o')
                            {
                                if(a[i+5][j+5]=='n')
                                {
                                    if(a[i+6][j+6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i+1][j+1]=a[i+1][j+1];
                                        b[i+2][j+2]=a[i+2][j+2];
                                        b[i+3][j+3]=a[i+3][j+3];
                                        b[i+4][j+4]=a[i+4][j+4];
                                        b[i+5][j+5]=a[i+5][j+5];
                                        b[i+6][j+6]=a[i+6][j+6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从上右下往左上 
            {
                if(a[i-1][j-1]=='i')
                {
                    if(a[i-2][j-2]=='z')
                    {
                        if(a[i-3][j-3]=='h')
                         {
                            if(a[i-4][j-4]=='o')
                            {
                                if(a[i-5][j-5]=='n')
                                {
                                    if(a[i-6][j-6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i-1][j-1]=a[i-1][j-1];
                                        b[i-2][j-2]=a[i-2][j-2];
                                        b[i-3][j-3]=a[i-3][j-3];
                                        b[i-4][j-4]=a[i-4][j-4];
                                        b[i-5][j-5]=a[i-5][j-5];
                                        b[i-6][j-6]=a[i-6][j-6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从右往左
            {
                if(a[i][j+1]=='i')
                {
                    if(a[i][j-2]=='z')
                    {
                        if(a[i][j-3]=='h')
                        {
                            if(a[i][j-4]=='o')
                            {
                                if(a[i][j-5]=='n')
                                {
                                    if(a[i][j-6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i][j-1]=a[i][j-1];
                                        b[i][j-2]=a[i][j-2];
                                        b[i][j-3]=a[i][j-3];
                                        b[i][j-4]=a[i][j-4];
                                        b[i][j-5]=a[i][j-5];
                                        b[i][j-6]=a[i][j-6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从下往上 
            {
                if(a[i-1][j]=='i')
                {
                    if(a[i-2][j]=='z')
                    {
                        if(a[i-3][j]=='h')
                         {
                            if(a[i-4][j]=='o')
                            {
                                if(a[i-5][j]=='n')
                                {
                                    if(a[i-6][j]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i-1][j]=a[i-1][j];
                                        b[i-2][j]=a[i-2][j];
                                        b[i-3][j]=a[i-3][j];
                                        b[i-4][j]=a[i-4][j];
                                        b[i-5][j]=a[i-5][j];
                                        b[i-6][j]=a[i-6][j];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从左往右
            {  
                if(a[i-1][j+1]=='i')
                {
                    if(a[i-2][j+2]=='z')
                    {
                        if(a[i-3][j+3]=='h')
                        {
                            if(a[i-4][j+4]=='o')
                            {
                                if(a[i-5][j+5]=='n')
                                {
                                    if(a[i-6][j+6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i-1][j+1]=a[i-1][j+1];
                                        b[i-2][j+2]=a[i-2][j+2];
                                        b[i-3][j+3]=a[i-3][j+3];
                                        b[i-4][j+4]=a[i-4][j+4];
                                        b[i-5][j+5]=a[i-5][j+5];
                                        b[i-6][j+6]=a[i-6][j+6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
            if(a[i][j]=='y')//从左往右 
            {    
                if(a[i+1][j-1]=='i')
                {
                    if(a[i+2][j-2]=='z')
                    {
                        if(a[i+3][j-3]=='h')
                        {
                            if(a[i+4][j-4]=='o')
                            {
                                if(a[i+5][j-5]=='n')
                                {
                                    if(a[i+6][j-6]=='g')
                                    {
                                        b[i][j]=a[i][j];
                                        b[i+1][j-1]=a[i+1][j-1];
                                        b[i+2][j-2]=a[i+2][j-2];
                                        b[i+3][j-3]=a[i+3][j-3];
                                        b[i+4][j-4]=a[i+4][j-4];
                                        b[i+5][j-5]=a[i+5][j-5];
                                        b[i+6][j-6]=a[i+6][j-6];
                                    } 
                                } 
                            } 
                        } 
                    } 
                } 
            }
        }    
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout<<b[i][j];
        }
        cout<<endl;
    }
    return 0;
} 

 

这题我是纯暴力

不过还是推荐大家费费脑子,dfs一下的

因为——那更快啊

额……拜了个拜

喜欢的大神记得点赞+评论+关注欧

 

原文地址:https://www.cnblogs.com/wwLucas-Blog-Welcome/p/12896691.html