洛谷p1101
这个题千万不要用if,会被卡掉,(我用广搜题解交了一下),建议大家还是把这篇博客当个玩笑吧,或者说在考试时用来骗分
题目描述
给一n \times 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 1007≤n≤100)。
第二行开始输入n \times nn×n的字母矩阵。
输出格式
突出显示单词的n \times nn×n矩阵。
输入输出样例
7 aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa aaaaaaa
******* ******* ******* ******* ******* ******* *******
8 qyizhong gydthkjy nwidghji orbzsfgz hhgrhwth zzzzzozo iwdfrgng yyyygggg
*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;
}
}