洛谷P1101 单词方阵【暴力】【字符串】
题目描述
给一n×nn \times nn×n的字母方阵,内可能蕴含多个“yizhong
”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 888 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*
代替,以突出显示单词。例如:
输入:
8 输出:
qyizhong *yizhong
gydthkjy gy******
nwidghji n*i*****
orbzsfgz o**z****
hhgrhwth h***h***
zzzzzozo z****o**
iwdfrgng i*****n*
yyyygggg y******g
输入输出格式
输入格式:
第一行输入一个数nnn。(7≤n≤1007 \le n \le 1007≤n≤100)。
第二行开始输入n×nn \times nn×n的字母矩阵。
输出格式:
突出显示单词的n×nn \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
题意:
给定一个n*n的字符矩阵,问能不能在行、列、对角线一共八个方向中找到字符串"yizhong"
把所有除"yizhong"之外的字符变成‘*’
思路:
数据量只有100,所以随便怎么暴力都行
//#include<bits/stdc++>
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<stdlib.h>
#include<queue>
#include<map>
#include<stack>
#include<set> #define LL long long
#define ull unsigned long long
#define inf 0x3f3f3f3f using namespace std;
int n;
const int maxn = ;
string ch[maxn];
bool yes[maxn][maxn]; int main()
{
scanf("%d", &n);
for(int i = ; i < n; i++){
cin>>ch[i];
} for(int i = ; i < n; i++){
for(int j = ; j <= n - ; j++){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i][j + k];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i][j + k] = true;
}
}
}
for(int j = n - ; j >= ; j--){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i][j - k];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i][j - k] = true;
}
}
}
} for(int i = ; i < n; i++){
for(int j = ; j <= n - ; j++){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[j + k][i];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[j + k][i] = true;
}
}
}
for(int j = n - ; j >= ; j--){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[j - k][i];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[j - k][i] = true;
} }
}
} for(int i = ; i <= n - ; i++){
for(int j = -n + + i; j <= i; j++){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i + k][i + k - j];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i + k][i + k - j] = true;
}
}
}
}
for(int i = n - ; i >= ; i--){
for(int j = -n + + i; j <= i; j++){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i - k][i - k - j];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i - k][i - k - j] = true;
}
}
}
} for(int i = ; i <= n - ; i++){
for(int j = n - ; j >= ; j--){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i + k][n - - i - k];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i + k][n - - i - k] = true;
}
}
}
}
for(int i = n - ; i >= ; i--){
for(int j = ; j <= n - ; j++){
string tmp = "";
for(int k = ; k < ; k++){
tmp += ch[i - k][n - - i + k];
}
if(tmp == "yizhong"){
for(int k = ; k < ; k++){
yes[i - k][n - - i - k] = true;
} }
}
} for(int i = ; i < n; i++){
for(int j = ; j < n; j++){
if(yes[i][j]){
printf("%c", ch[i][j]);
}
else{
printf("*");
}
}
printf("\n");
}
return ;
}
洛谷P1101 单词方阵【暴力】【字符串】的更多相关文章
- 洛谷 P1101 单词方阵
题目链接 https://www.luogu.org/problemnew/show/P1101 题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中 ...
- 洛谷——P1101 单词方阵
https://www.luogu.org/problem/show?pid=1101#sub 题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放 ...
- 洛谷P1101单词方阵
题目描述 给一n×n的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的. 摆放可沿着 8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有 ...
- 洛谷P1101 单词方阵【DFS】
给一n \times nn×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向 ...
- 洛谷P1101 单词方阵——S.B.S.
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
- 洛谷P1101 单词方阵
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red ...
- 洛谷 P1101单词方阵
我已经,是这个世界上,最幸福的女孩了 ——<末日时 ...
- 集训作业 洛谷P1101 单词方阵
这个题的长度真的有点长,我直接放图片吧 这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢. #include< ...
- 洛谷1019 单词接龙 字符串dfs
问题描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...
随机推荐
- ui-router 1.0 003 lazyloading
ui-router lazyloading 支持懒加载, 真正需要的时候再去加载模块
- phpbbchina恢复上线
上个月已经把ICP备案重新办过了, 但是一直在忙着应付工作上的事. 从上周末开始经过数天的努力, 将 phpbbchina 恢复上线了. 时间一晃, 正好十年. 目前能找到的最新的数据是2008-10 ...
- python排序出现的问题以及解决方案
对某个文件夹中的文件重命名的时候,发现有些文件丢失,代码如下: #coding=gbk # Findthe every dir, if 01.rm exist in it, then rename i ...
- Swift 同构与异构
1.数据源中的同构与异构 对于 Swift 的集合数据来说,有同构和异构之分. 如果你需要讨论一群鸟类或者一批飞机,那么这样的数据是同构的,比如包含鸟类的数组 [Bird] 和包含飞机的数组 [Air ...
- 我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
Android 设备的CPU类型通常称为ABIs 问题描写叙述 解决方法 1解决之前的截图 2解决后的截图 3解决方法 4建议 为什么你须要重点关注so文件 App中可能出错的地方 其它地方也可能出错 ...
- 【iCore4 双核心板_ARM】例程一:ARM驱动三色LED
实验原理: 通过STM32的三个GPIO驱动一个三色LED,引脚PB2接红色LED(ARM_LEDR), 引脚PA9接蓝色LED(ARM_LEDB),引脚PA10接绿色LED(ARM_LEDG), ...
- Windows 使用 Gogs 搭建 Git 服务器
随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...
- Java知多少(81)框架窗口基础
窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: Applet窗口:Applet类管理这 ...
- Python 函数(可变参数)
在python函数中,可以定义可变参数,顾名思义,可变参数就是,传入的参数是可变的例如,给定一组数字a,b,c... 请计算a2 + b2 + c2 + …… 要定义出这个函数,我们必须确定输入的参 ...
- 设计模式-行为型模式,python备忘录模式
备忘录模式 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象.备忘录模式属于行为型模式. 介绍 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该 ...