洛谷——P1101 单词方阵
2024-08-31 18:40:25
https://www.luogu.org/problem/show?pid=1101#sub
题目描述
给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:
输入:
8 输出:
qyizhong *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矩阵。
输入输出样例
输入样例#1:
7
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
输出样例#1:
*******
*******
*******
*******
*******
*******
******* 没什么好说的~~~洛谷字符串有毒~
#include <algorithm>
#include <iostream> using namespace std; int n,mark[][];
int fx[]={,,,,,-,-,-};
int fy[]={,-,,,-,,,-};
char yz[]= {'y','i','z','h','o','n','g'},word[][]; void print(int x,int y,int drict)
{
int cnt=,xx=x,yy=y;
for(int i=;i<;i++)
{
if(word[x][y]==yz[i]) cnt++;
else break;
x+=fx[drict];y+=fy[drict];
}
if(cnt!=) return ;
for(int i=;i<;i++)
{
mark[xx][yy]=;
xx+=fx[drict];yy+=fy[drict];
}
} int main()
{
cin>>n;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
cin>>word[i][j];
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(word[i][j]=='y')
for(int k=;k<;k++)
if(word[i+fx[k]][j+fy[k]]=='i') print(i,j,k);
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
if(mark[i][j]) cout<<word[i][j];
else cout<<'*';
cout<<endl;
}
return ;
}
最新文章
- [mysql] timestamp自动更新和初始化
- 十条nmap常用的扫描命令
- java 锁讲解
- ubuntu安装QQ目前最完善的方法!(亲测,成功)
- Oracle之初始创建scott/tiger来测试
- Kernel 4.9的BBR拥塞控制算法。
- Python type类具体的三大分类:metaclasses,classes,instance
- ZooKeeper快速学习
- Pandas常用功能总结
- spring-boot的spring-cache中的扩展redis缓存的ttl和key名
- JavaScript中作用域和作用域链的简单理解(变量提升)
- redis3.0.3集群搭建
- android中一些特殊字符的使用(如:←↑→↓等箭头符号)
- [APUE]进程控制(下)
- python group()--转载
- 一款由jquery实现的超炫的页面加载特效
- 《Algorithms算法》笔记:元素排序(4)——凸包问题
- AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架
- HBase多租户机制分析
- perl登录ssh