洛谷题解 - P2670 [NOIP2015 普及组] 扫雷游戏

NOIP普及组|2015T2扫雷游戏 2015年NOIP普及组第二题:扫雷游戏 扫雷游戏是一款十分经典的单机小游戏。在 $n$ 行 $m$ 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。 阅读详情

题目背景

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 1≤n≤100,1≤m≤100。

代码

#include <iostream>
using namespace std;
bool delei[105][105];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=m; j++)
		{
			char ch;
			cin>>ch;
			if(ch=='*') delei[i][j]=true;
		}
	}
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=m; j++)
		{
			if(delei[i][j])
			{
				cout<<"*";
				continue;
			}
			int ans=0;
			if(delei[i-1][j]) ans++;
			if(delei[i][j-1]) ans++;
			if(delei[i-1][j-1]) ans++;
			if(delei[i+1][j-1]) ans++;
			if(delei[i+1][j+1]) ans++;
			if(delei[i-1][j+1]) ans++;
			if(delei[i+1][j]) ans++;
			if(delei[i][j+1]) ans++;
			cout<<ans;
		}
		cout<<"\n";
	}
	return 0;
}
洛谷P2670 [NOIP2015 普及组] 扫雷游戏 这段代码逻辑清晰地实现了扫雷游戏中根据地雷分布计算非地雷格周围地雷数并输出完整雷区情况的功能。通过合理运用二维向量来存储雷区信息,利用循环嵌套结合边界条件判断的方式来准确统计每个非地雷格周围的地雷数量,最后按要求输出结果。不过,代码可以进一步优化,例如可以将检查周围八个方向的逻辑封装成一个函数,使代码结构更加清晰,便于阅读和维护。但总体而言,在解决本题要求的功能方面表现良好,符合题目的基本需求。 阅读详情

相关推荐

题解:洛谷 P2670 [NOIP 2015 普及组] 扫雷游戏

列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。个字符,描述了雷区中的地雷分布情况。字符 * 表示相应格子是地雷格,字符?注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。用 * 表示地雷格,用周围的地雷个数表示非地雷格。列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

团爸讲算法 1186

【题解】【洛谷P2670】【模拟】—— [NOIP2015 普及组] 扫雷游戏

平台为全国青少年提供最专业的编程教育服务,包括提供最新最详细的编程相关资讯、最专业的竞赛指导、最合理的课程规划等。本平台利用趣味性和互动性强的教学方式,旨在激发孩子们对编程的兴趣,培养他们的逻辑思维能力和创造力,让孩子们在轻松愉快的氛围中掌握编程知识,为未来科技人才的培养奠定坚实基础。列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。个字符,描述整个雷区。

Pantheraonca的博客 852

STM32硬件SPI驱动ADS1220实战:从零搭建高精度数据采集系统(附避坑指南)

本文详细介绍了使用STM32硬件SPI驱动24位高精度ADC芯片ADS1220的完整实战方案。内容涵盖从硬件设计、CubeMX工程配置、SPI通信底层实现到数据读取策略与性能优化的全流程,并重点分享了多通道切换、噪声抑制等关键避坑指南,帮助开发者构建稳定可靠的高精度数据采集系统。

o4p5q6r7s的博客 455

【洛谷题解】P2670 [NOIP2015 普及组] 扫雷游戏

这道题考察对字符数组的使用,对了,这可是NOIP2015 普及组第二题哦。

一个学生的博客 1481

Ubuntu 20.04 LTS下5分钟搞定ONLYOFFICE协作空间社区版(Docker版保姆级教程)

本文提供了一份在Ubuntu 20.04 LTS系统上,通过Docker快速部署ONLYOFFICE协作空间社区版的保姆级教程。内容涵盖从系统准备、Docker环境搭建,到执行自动化安装脚本、完成Web初始化的全流程,并详细说明了部署后的安全配置、数据备份及基本运维要点,帮助用户高效构建私有、安全、可控的团队文档协作平台。

weixin_28826961的博客 262

MMRotate 详细使用教程

MMRotate 详细使用教程 做旋转目标检测,怎么可以不知道如何使用MMRotate呢! github链接: https://github.com/open-mmlab/mmrotate 1 安装 创建虚拟环境并激活 conda create -n mmrotate python=3.7 -y conda activate mmrotate 安装 PyTorch 和 torchvision conda install pytorch torchvision -c pytorch 注意:确保

Sylvia_Lan的博客 1万+

洛谷题解P2670 [NOIP2015 普及组] 扫雷游戏

洛谷P2670 [NOIP2015 普及组] 扫雷游戏 要找到一个格子的周围格子包括其 上(0,1)、下(0,-1)、左(-1,0)、右(1,0)、 左上(-1,1)、右上(1,1)、左下(-1,-1)、右下(1,-1) 八个方向上与之直接相邻的格子,可以用两个数组dx[8]、dy[8]来搜索地地雷的位置 搜索到地雷之后在数组sum[ ][ ]相应的位置上自增。 #include<iostream> using namespace std; char map[105][105]; int sum

功不唐捐的博客 3114

三极管自激升压电路设计 - 从参数计算到实践验证

本文详细解析了三极管自激升压电路(焦耳小偷电路)的设计原理与实践方法。通过剖析自激振荡机制与三极管电流关系,指导读者完成从核心参数计算、关键元件选型到面包板搭建调试的全过程。文章重点阐述了如何利用电感、三极管等基础元件实现低压直流到高压的转换,是理解开关电源与电磁能量转换的绝佳实践项目。

weixin_29250573的博客 369

洛谷 P2670 [NOIP 2015 普及组] 扫雷游戏 P1045 [NOIP 2003 普及组] 麦森数 P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布 python题解

本文聚焦洛谷 P2670、P1045、P1328 三道题,用 Python 解析:P2670 讲扫雷模拟的网格遍历与计数;P1045 拆解麦森数的大数处理与快速幂;P1328 梳理石头剪刀布的逻辑判断,最后提炼共性技巧并给出练习建议

m0_58066727的博客 737

车载通信技术原理-CAN通讯和代码配置:奥迪A6轿车总线拓扑图

CAN总线是一种用于汽车监测与控制系统的串行通信协议,由德国Bosch公司开发。它具有多主工作方式、优先级仲裁、高抗干扰等特点,支持点对点、广播等多种通信方式,传输距离可达10公里。CAN协议采用差分信号传输,物理层使用双绞线,数据链路层实现错误检测、位填充等功能。协议帧类型包括数据帧、遥控帧、错误帧等。CAN总线自1986年发布以来,已成为汽车电子系统的标准配置,广泛应用于车载网络。文章还提供了S32K144芯片的CAN驱动代码示例。

擎天柱工坊 1069

从DIY到实战:手把手教你搭建一个媲美吉时利2450的nA级电流源表(附原理图与避坑指南)

本文详细解析如何从零打造nA级精密电流源,涵盖核心设计原理、PCB布局技巧、热电偶效应应对及校准验证体系。通过低成本替代方案和优化设计,实现媲美商用源表的性能,特别适合硬件爱好者和独立开发者。文章还提供原理图与避坑指南,助你轻松搭建高精度电流源系统。

weixin_42656416的博客 294

洛谷p2670 [NOIP2015 普及组] 扫雷游戏 java题解

接收直接遍历数组输入,要注意接收的数组范围 后面判断数组周围8个数时,边缘会产生数组越界,所以定义大小+2的数组。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之 为非地雷格)。玩家翻开一个非地雷格时,该格将会出现-个数字--提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。字符*示相应格子是地雷格,字符?用*示地雷格,碉围的地雷个数表示非地雷。现在给出n行m列的雷区中的地雷分布,要求计算出海个非地雷格周围的地雷格数。

2301_80438745的博客 770

YOLOv11 | 一文带你深入理解ultralytics最新作品yolov11的创新 | 训练、推理、验证、导出 (附网络结构图)

ultralytics发布了最新的作品YOLOv11,这一次YOLOv11的变化相对于ultralytics公司的上一代作品YOLOv8变化还是很大的(YOLOv9、YOLOv10均不是ultralytics公司作品),其中改变的位置涉及到C2f变为C3K2,在SPPF后面加了一层类似于注意力机制的C2PSA,还有一个变化大家从yaml文件是看不出来的就是它的检测头内部替换了两个DWConv,在损失函数方面就没有变化了还是采用的CIoU作为边界框回归损失,下面带大家深入理解一下ultralytics最新作品

Snu77的博客 18万+

洛谷P2670-扫雷游戏

【代码】洛谷P2670-扫雷游戏。

2301_81461004的博客 386

数据治理路径之辩:从“先治后用”到“边用边治”,企业如何选择最优路径?

数据治理是企业在数智化建设中的核心挑战,主要涉及三种时序策略:先治理后使用、先用后治理和边用边治。先治理后使用强调在数据应用前建立完整的治理框架,适合高合规要求的行业,但可能响应滞后。先用后治理则优先释放数据价值,适合快速变化的业务环境,但可能累积数据质量问题。边用边治寻求动态平衡,通过持续改进实现治理与应用的同步迭代,适合复杂数据环境。技术选型决策矩阵和实施方法论提供了具体的操作指南,建议根据组织特性和业务需求选择适配方案,并通过渐进式演进路径实现治理与业务的共生演进。

石榴姐yyds 407

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【洛谷 P2670】[NOIP2015 普及组] 扫雷游戏 题解(模拟)

NOIP2015 普及组 T2。

HEX9CF的技术博客 514

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

洛谷 P2670 [NOIP2015 普及组] 扫雷游戏 题解 C/C++

思路如下: 首先将地雷分布读入二维字符数组中,如果是地雷" * "就输出,否则在八个方向上遍历即可,可以用两个一维数组控制方向,详见代码sweep()函数 //#define LOCAL #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> #include &l

止心的博客 1223

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

扫雷游戏(洛谷P2670)

NOIP2015 普及组 T2 扫雷游戏。

qq_65201998的博客 1504

洛谷P2670 [NOIP 2015 普及组] 扫雷游戏

NOIP2015 普及组 T2。

tonman7797的博客 1154

【题解·洛谷】P2670 [NOIP2015 普及组] 扫雷游戏

洛谷P2670 题解

qq_56897740的博客 1392

洛谷入门——P2670 [NOIP2015 普及组] 扫雷游戏

NOIP2015 普及组 T2。

Fiona20的博客 951

洛谷 P2670 [NOIP2015 普及组] 扫雷游戏

NOIP2015 普及组 T2。

2301_80398020的博客 582

洛谷 P2670 [NOIP2015 普及组] 扫雷游戏(搜索)

//学习记录 洛谷 P2670 [NOIP2015 普及组] 扫雷游戏 #include<bits/stdc++.h> using namespace std; int b[105][105]; int main() { char a[105][105]; int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; } } for(int i=1

m0_53179196的博客 339
上一篇: 洛谷题解 - B2124 判断字符串是否为回文
下一篇: 洛谷题解 - P5705 【深基2.例7】数字反转
Python_enjoy
博客等级 码龄4年 1201粉丝 52原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值