2015NOIP普及组真题 2. 扫雷游戏

embedded/2024/9/22 14:35:51/
线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1970

核心思想:

这是一道基础的 dfs模板题,只需要对每个点判断四周的8个点是否有雷即可,不需要在dfs中继续dfs。

step1. 如果是*,则直接输出*
step2. 如果不是*,则dfs周边8个点后,直接输出结果

#include <bits/stdc++.h>
#define MAXN 105
using namespace std;int n, m;
char a[MAXN][MAXN];
int dx[8]={-1, -1, -1, 0, 0, 1, 1, 1};
int dy[8]={-1, 0, 1, -1, 1, -1, 0, 1};void dfs(int x, int y)
{int cnt = 0;for(int i = 0; i < 8; i++){int x1 = x + dx[i];int y1 = y + dy[i];if( x1 >= 1 && x1 <= n && y1 >= 1 && y1 <= m && a[x1][y1] == '*')cnt++;}cout << cnt;return;
}int main()
{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; i <= n; i ++){for(int j = 1; j <= m; j++)if(a[i][j]=='*')  cout << '*';	// 如果是*,则直接输出else dfs(i, j);	// 如果不是*,则dfs周边8个点cout << endl;}	return 0;
}

http://www.ppmy.cn/embedded/9808.html

相关文章

实现游戏地图读取与射击运行

射击代码来源自2D 横向对抗射击游戏&#xff08;by STF&#xff09; - CodeBus 地图读取改装自 瓦片地图编辑器 解决边界检测&#xff0c;实现使用不同像素窗口也能移动不闪退-CSDN博客 // 程序&#xff1a;2D RPG 地图编辑器改游戏读取器 // 作者&#xff1a;民用级脑的研发…

JAVA基础之垃圾收集器

一 JVM垃圾收集 分代收集思想 当前虚拟机的垃圾收集一般采用分代收集算法&#xff0c;这种算法本身没有创新性&#xff0c;只是根据对象存活周期的不同将内存分为几块。一般将java堆内存分为新生代和老年代&#xff0c;这样我们就可以根据不同年龄到的特点选择不同的垃圾收集…

Cargo 使用教程

什么是 Cargo&#xff1f; Cargo 是 Rust 的构建系统和包管理器&#xff0c;它提供了创建项目、编译代码、管理依赖和发布包等功能。使用 Cargo&#xff0c;你可以轻松地构建 Rust 程序&#xff0c;而不必深入了解底层的构建细节。 安装 Cargo 在开始之前&#xff0c;确保你…

Anaconda pip 报错 ValueError: check_hostname requires server_hostname 解决办法

错误提要 在使用anaconda 的anaconda prompt 进行pip安装的时候报错&#xff0c;如图所示 网上搜了一圈&#xff0c;很多的做法是&#xff0c;将代理VPN关了&#xff0c;我测试了一下确实是这样&#xff0c;如下图在系统设置里面关闭代理服务器 另一种做法 这种情况好像是…

支持三十多个算法的免费科学计算API

科学计算API支持的算法规则&#xff0c;在使用接口时请注意&#xff0c;num参数应该传一个数字&#xff08;整数、浮点数&#xff09;或两个数字&#xff0c;并以“,”半角逗号分隔。在计算时&#xff0c;第一和第二个&#xff08;逗号左右两侧&#xff09;数字相互计算。在百分…

浏览器原理之浏览器组成

对于Web开发人员来说&#xff0c;了解浏览器的内部结构和工作原理是至关重要的。这可以帮助开发者更好地理解应用程序的行为&#xff0c;以及如何优化它们以提供最佳的用户体验。以下是关于浏览器组成、浏览器内核的解释以及常见浏览器内核的比较和它们的应用。 一 浏览器的主…

go work模块与go mod包管理是的注意事项

如下图所示目录结构 cmd中是服务的包&#xff0c;显然auth,dbtables,pkg都是为cmd服务的。 首先需要需要将auth,dbtables,pkg定义到go.work中&#xff0c;如下&#xff1a; 在这样在各个单独的go mod管理的模块就可以互相调用了。一般情况下这些都是IDE自动进行的&#xff0c;…

Git 的基本概念和使用方式。

Git是一种分布式版本控制系统&#xff0c;用于跟踪文件的修改并协同工作。用户可以使用Git来记录文件的更改历史、创建分支、合并分支以及与其他用户共享代码。 Git的基本概念有以下几个&#xff1a; 仓库&#xff08;Repository&#xff09;&#xff1a;存储项目文件及其版本…