洛谷p1101

这个题千万不要用if,会被卡掉,(我用广搜题解交了一下),建议大家还是把这篇博客当个玩笑吧,或者说在考试时用来骗分

题目描述

给一n imes nn×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如:

输入:
    8                     输出:
    qyizhong              *yizhong
    gydthkjy              gy******
    nwidghji              n*i*****
    orbzsfgz              o**z****
    hhgrhwth              h***h***
    zzzzzozo              z****o**
    iwdfrgng              i*****n*
    yyyygggg              y******g

输入格式

第一行输入一个数nn。(7 le n le 1007n100)。

第二行开始输入n imes nn×n的字母矩阵。

输出格式

突出显示单词的n imes nn×n矩阵。

输入输出样例

输入 #1
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出 #1
*******
*******
*******
*******
*******
*******
*******
输入 #2
8
qyizhong
gydthkjy
nwidghji
orbzsfgz
hhgrhwth
zzzzzozo
iwdfrgng
yyyygggg
输出 #2
*yizhong
gy******
n*i*****
o**z****
h***h***
z****o**
i*****n*
y******g
千万不要学我,我的代码受大佬的影响用了if,极其简单,也非常长(开车),不过有一个点没过,怀疑是在卡我,自信点吧怀疑去掉就是卡我,只要举例所有情况就行上代码

#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;
}
}

原文地址:https://www.cnblogs.com/lizhengde/p/12905575.html