当前位置: 首页 > news >正文

蓝桥杯备赛 | 洛谷做题打卡day2

蓝桥杯备赛 | 洛谷做题打卡day2

嵌套循环yyds!!

题目来源:洛谷P2670 [NOIP2015 普及组] 扫雷游戏

题目背景

NOIP2015 普及组 T2

题目描述

扫雷游戏是一款十分经典的单机小游戏。在 n n n m m m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。

现在给出 n n n m m m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

行更远的路,见更亮的星

输入格式

第一行是用一个空格隔开的两个整数 n n n m m m,分别表示雷区的行数和列数。

接下来 n n n 行,每行 m m m 个字符,描述了雷区中的地雷分布情况。字符 * \texttt{*} * 表示相应格子是地雷格,字符 ? \texttt{?} ? 表示相应格子是非地雷格。相邻字符之间无分隔符。

输出格式

输出文件包含 n n n 行,每行 m m m 个字符,描述整个雷区。用 * \texttt{*} * 表示地雷格,用周围的地雷个数表示非地雷格。相邻字符之间无分隔符。

样例 #1

样例输入 #1

3 3
*??
???
?*?

样例输出 #1

*10
221
1*1

样例 #2

样例输入 #2

2 3
?*?
*??

样例输出 #2

2*1
*21

提示

对于 100 % 100\% 100%的数据, 1 ≤ n ≤ 100 , 1 ≤ m ≤ 100 1≤n≤100, 1≤m≤100 1n100,1m100

利用嵌套循环,自己多试试,debug,以下是我的代码~

#include<iostream>
using namespace std;
char s[110][110];
int t = 0;void find(int a, int b)
{if (s[a][b] == '*') t++;
}int main()
{int n, m, cnt = 0;cin >> n >> m;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){cin >> s[i][j];}}for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (s[i][j] == '*') cout << '*';if (s[i][j] == '?'){for (int p = i - 1; p <= i + 1; p++){for (int q = j - 1; q <= j + 1; q++) find(p, q);}cout << t;t = 0;}}cout << endl;}return 0;
}

我的一些话

​很多前辈的题解都很长且包括诸如s[i-1][j-1]一直到s[i+1][j+1]这般冗长的搜索,其实…我觉得直接用循环就好了嘛

两次debug然后AC,嵌套了find函数看起来会稍微简洁一些,其实这题思路不难的——不外乎将字符装进数组,嵌套循环换行,然后分遇‘*’直接输出 ,遇‘?’搜索输出数字两种情况,然后就没有然后了,华丽收场~

欢迎关注我,每日更新蓝桥杯备赛好题 and C++学习日记一起成长:)

相关文章:

  • Protobuf小记(万字)
  • 基于FPGAWS2812B的贪吃蛇方案设计(含源码)
  • pod 控制器
  • 移动安全-certutil
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • 封装日期时间组件
  • 边缘计算的挑战和机遇(结合RDH-EI)
  • 12GoF之代理模式
  • Hutool sqlserver 数据库简单操作-Db
  • Linux 【C编程】IO进阶— 阻塞IO、非阻塞IO、 多路复用IO、 异步IO
  • 阶段七第二章 性能测试工具
  • word写标书的疑难杂症总结
  • leetcode82. 删除排序链表中的重复元素 II
  • 网络安全产品之认识WEB应用防火墙
  • 常用Java代码-Java中的Lambda表达式和函数式接口
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Android优雅地处理按钮重复点击
  • crontab执行失败的多种原因
  • Docker容器管理
  • E-HPC支持多队列管理和自动伸缩
  • Java到底能干嘛?
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Js基础知识(一) - 变量
  • laravel with 查询列表限制条数
  • Node 版本管理
  • spring security oauth2 password授权模式
  • SpringCloud集成分布式事务LCN (一)
  • 程序员该如何有效的找工作?
  • 将回调地狱按在地上摩擦的Promise
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 利用DataURL技术在网页上显示图片
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端技术周刊 2019-01-14:客户端存储
  • 区块链技术特点之去中心化特性
  • 问题之ssh中Host key verification failed的解决
  • 小程序测试方案初探
  • const的用法,特别是用在函数前面与后面的区别
  • k8s使用glusterfs实现动态持久化存储
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #ifdef 的技巧用法
  • (2015)JS ES6 必知的十个 特性
  • (4)(4.6) Triducer
  • (4)Elastix图像配准:3D图像
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (done) 两个矩阵 “相似” 是什么意思?
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (离散数学)逻辑连接词
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)mysql_MYSQL(三)
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)Sublime Text3配置Lua运行环境
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)原始图像数据和PDF中的图像数据