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

题目描述

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

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

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

输入格式

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

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

输出格式

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

输入输出样例

输入 

3 3
*??
???
?*?

输出 

*10
221
1*1

输入 

2 3
?*?
*??

输出 

2*1
*21

说明/提示

对于 100%的数据1≤n≤100,1≤m≤100。


思路:此题可以用偏移量法,手动模拟一下,这个点到其他八个点的坐标偏移量,然后计算即可,此题跟蛇形矩阵的解法非常相似。 

 


AC代码:

#include<bits/stdc++.h>

using namespace std;

const int N = 110;
char ch[N][N];
int dx[] = {-1,-1,-1,0,0,1,1,1};
int dy[] = {-1,0,1,-1,1,-1,0,1};

int main()
{
int n,m;
    cin >> n >> m;
    for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=m;j++)
    	{
    		cin >> ch[i][j];
		}
	}
	int cnt = 0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cnt = 0;
			for(int k=0;k<8;k++)
			{
				int x = i + dx[k],y = j + dy[k];
				if(x < 0 || y < 0 || x > n || y > m) continue;
				
				if(ch[x][y] == '*')
				{
					cnt++;
				}
			}
			if(ch[i][j] == '*') cout << '*';
			else cout << cnt;
		}
		cout << endl;
	}
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/401998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《游戏引擎架构》--学习3

内存管理 优化动态内存分配 维持最低限度的堆分配&#xff0c;并且永不在紧凑循环中使用堆分配 容器 迭代器 Unicode

uni-app搭建h5项目

一、 打开官方网站 https://uniapp.dcloud.net.cn/quickstart-cli.html 二、找到使用vue-cli命令行&#xff0c;按照文档上的步骤进行搭建 全局安装 vue-cli npm install -g vue/cli搭建项目 可以根据命令行搭建&#xff0c;搭建vue2.0对应的是webpack&#xff0c; 也可以搭…

vulnhub靶场---->DOUBLETROUBLE: 1

详细思路 知识点1.网段探测2.nmap扫描3.目录扫描4.隐写5.上传木马文件6.awk提权 知识点 图片隐写----->steghide 密码爆破----->stegseek awk提权------>sudo awk BEGIN {system("/bin/bash")}1.网段探测 kali:192.168.0.131 靶机&#xff1a;192.168.0.1…

微信小程序-消息订阅整体流程

1.首先登录微信公众平台&#xff0c;网址&#xff1a;微信公众平台 2.找到“订阅消息”&#xff0c;如果订阅消息没开启&#xff0c;可以点击开启&#xff0c;然后根据自己的消息需求到公共模版里找合适的&#xff0c;然后点击选用&#xff0c;如果没有比较合适的可以申请模版…

【开源】SpringBoot框架开发音乐平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首音乐4.2 新增音乐4.3 新增音乐订单4.4 查询音乐订单4.5 新增音乐收藏 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的音乐平台&#xff0c;包含了音乐…

使用maven集成spring在测试的时候报出了如下的异常:version 60

使用maven集成spring在测试的时候报出了如下的异常&#xff1a; Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60 解决&#xff1a;

MySQL学习笔记3: MySQL数据库基础

目录 前言目标数据库操作&#xff08;针对database 的操作&#xff09;1. 创建数据库 create database 数据库名;2. 查看数据库 show databases;3. 选中数据库 use 数据库名;4. 删除数据库 drop database 数据库名; mysql中支持的数据类型1. 数值类型: NUMERIC(M,D)2. 字符串类…

LeetCode | 两数相加 C语言

Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存&#xff0c;看下图 我们先声明出指针p和指针q&#xff0c;还有指针head&#xff08;主要用于return上而已&#xff09;&#xff0c;然后进行一系列操作&#xff0c…

【Spring Cloud】实现微服务调用的负载均衡

文章目录 什么是负载均衡自定义实现负载均衡启动shop-product微服务通过nacos查看微服务的启动情况自定义实现负载均衡 基于Ribbon实现负载均衡添加注解修改服务调用的方法Ribbon支持的负载均衡策略通过修改配置来调整 Ribbon 的负载均衡策略通过注入Bean来调整 Ribbon 的负载均…

【Vue】本地使用 axios 调用第三方接口并处理跨域

前端处理跨域 一. 开发准备 开发工具&#xff1a;VScode框架&#xff1a;Vue2项目结构&#xff1a;vue脚手架生成的标准项目&#xff08;以下仅显示主要部分&#xff09; 本地已搭建好的端口&#xff1a;8080要请求的第三方接口&#xff1a;http://1.11.1.111:端口号/xxx-api…

3.1 XPath的使用

目录 3.1.1 XPath的作用 3.1.2 XPath使用前提 3.1.3 XPath的使用 &#xff08;1&#xff09;属性匹配和获取一个属性值节点的内容 &#xff08;2&#xff09;属性多值匹配 &#xff08;3&#xff09;获取<>中的内容 &#xff08;4&#xff09;多属性匹配 &#…

通知:全面停工停产6个月,员工解雇工

随着新能源汽车兴起&#xff0c;汽车行业涌现出许多造车新势力&#xff0c;包括蔚来、理想、小鹏、哪吒、零跑等。然而&#xff0c;近日&#xff0c;高合汽车陷入了困境&#xff0c;宣布全面停工停产&#xff0c;员工被解雇&#xff0c;新车降价清仓。 据百能云芯电子元器件商城…

力扣225 用队列实现栈

题目链接 如果用两个栈来实现队列&#xff0c;那么可以用两个队列来实现栈吗 首先看入栈操作和入队是一样的&#xff0c;直接用 就是这个出栈&#xff0c;每次出栈的是队列里的最后一个元素&#xff0c;那么将前面的元素依次入到第二个队列&#xff0c;然后再将所剩的最后一个…

Spring解决循环依赖

目录 什么是spring循环依赖 什么情况下循环依赖可以被处理&#xff1f; spring 如何解决循环依赖 创建A这个Bean的流程 答疑 疑问&#xff1a;在给B注入的时候为什么要注入一个代理对象&#xff1f; 初始化的时候是对A对象本身进行初始化&#xff0c;而容器中以及注入到B…

windows系统下载安装 memcached

好 之前说 带大家要用spring boot整合cache 其中包括 memcached 那么今天就带大家 下载安装一下 我们先访问地址 https://cloud.tencent.com/developer/article/2049577 这也是别人发的一个网址 里面放了他放在网上的资源 简单归纳为 windows 32位 链接 https://share.weiyun…

Java 学习和实践笔记(16):类的理解以及初始值

类&#xff0c;英文名叫class。基本上对应的就是语言里的名词。 比如&#xff0c;房子、人、树、花、汽车等等&#xff0c;这些名词&#xff0c;这些可以定义成类。 以房子为例&#xff0c;作为一个房子&#xff0c;它一定有相应的属性&#xff0c;比如房顶、墙、门、窗等等&…

redis复习笔记06(小滴课堂)

分布式锁核心知识介绍和注意事项 基于Redis实现分布式锁的几种坑 综合伪代码&#xff1a; 运行&#xff1a;

乱评?口碑不错老牌TOP期刊竟也被预警?预警名单再遭质疑!

【SciencePub学术】 2024年《国际期刊预警名单》 2024年预警原因&#xff1a;引用操纵 FUEL IF(2022)&#xff1a;7.4&#xff0c;JCR1区&#xff0c;中科院1区TOP 期刊数据指标 ISSN&#xff1a;0016-2361 IF(2022)&#xff1a;7.4 自引率&#xff1a;20.30% 年发文量&…

我有一个自解压的文件,格式EXE的.我想加密.怎么弄? 给人家要密码才能解压.

要加密一个自解压的EXE文件&#xff0c;使其需要密码才能解压&#xff0c;你可以使用加密软件或者对EXE文件进行一些特殊的处理。以下是一些建议的方法&#xff1a; 1. 使用加密软件 WinRAR&#xff1a;WinRAR是一个常用的压缩和解压缩工具&#xff0c;它也提供了加密功能。你…

大模型相关论文笔记

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 用于知识密集型NLP任务的检索增强生成 Facebook 2020 PDF CODE &#xff08;论文代码链接已失效&#xff0c;以上是最新链接&#xff09; 引言 大模型有幻觉问题&#xff08;hallucinations&#xff09;&…