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

FZU OJ 1056 :扫雷游戏

Problem 1056 扫雷游戏

Accept: 2624    Submit: 6903
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

扫雷是Windows自带的游戏。游戏的目标是尽快找到雷区中的所有地雷,而不许踩到地雷。如果方块上的是地雷,将输掉游戏。如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷。

你的任务是在已知地雷出现位置的情况下,得到各个方块中的数据。

*...
.... “*”表示有地雷
.*.. “.”表示无地雷
....
经过处理应得到
*100
2210
1*10
1110

 Input

输入有多组数据,每组数据的第一行有两个数字,m,n(0<m,n<100)表示游戏中雷区的范围为m×n。接下来m行每行有n个字符。“*” 表示有地雷,“.”表示无地雷。最后一组数据m=0,n=0表示输入结束,不需要处理。

 Output

对于每组输入数据,输出结果,各方块数字间不留空格。每组结果之后有一个空行。

 Sample Input

2 3
***
...
4 4
*...
....
.*..
....
0 0

 Sample Output

***
232

*100
2210
1*10
1110

一开始想着这道题要用dfs之类的算法, 后来发现想多了。。。直接遍历一遍记录就可以了,但是没有看到每组输出后有一颗空行,导致错了一次。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#define ll long long
using namespace std;
const int maxn=1e6+10;
char a[110][110];
int b[110][110];
int n,m;
int main()
{
	while(cin>>m>>n&&n!=EOF&&m!=EOF)
	{
		if(n==0&&m==0) break;
		for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
		cin>>a[i][j];
		memset(b,0,sizeof(b));
		for(int i=1;i<=m;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(a[i][j]=='*')
				{
					b[i-1][j]+=1;
					b[i-1][j-1]+=1;
					b[i-1][j+1]+=1;
					b[i][j-1]+=1;
					b[i][j+1]+=1;
					b[i+1][j+1]+=1;
					b[i+1][j]+=1;
					b[i+1][j-1]+=1;
				}
			}
		}
		for(int i=1;i<=m;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(a[i][j]=='*')
				{
					cout<<"*";
					continue;
				}
				else cout<<b[i][j];
			}
			cout<<endl;
		}
		cout<<endl;
	}
	return 0;
}

转载于:https://www.cnblogs.com/Friends-A/p/9309027.html

相关文章:

  • C++矢量图形库系列(1)——矢量图形库乱谈(转)
  • 关于引入文件名字问题
  • Nagios常见问题记录(1)
  • CSS3窗帘式4格焦点图代码
  • 谁是“少数幸福的人”?
  • 肝病案
  • C++函数的重载
  • 初步探讨WPF的ListView控件(涉及模板、查找子控件)
  • 对称加密算法 非对称加密算法
  • Android系统默认Home应用程序(Launcher)的启动过程源码分析
  • JDBC(二)驱动程序类型发展历程
  • 【JavaScript】n++ VS ++n
  • 【Mybatis】 Mybatis在xml文件中处理大于号小于号的方法【问题】
  • ubuntu下安装thttpd
  • 五、万无一失:网站的高可用架构
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • IDEA 插件开发入门教程
  • JavaScript HTML DOM
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Swoft 源码剖析 - 代码自动更新机制
  • vue-router 实现分析
  • Vue学习第二天
  • 对象引论
  • 回流、重绘及其优化
  • 正则表达式
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $ git push -u origin master 推送到远程库出错
  • (13):Silverlight 2 数据与通信之WebRequest
  • (20050108)又读《平凡的世界》
  • (八)Spring源码解析:Spring MVC
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (力扣)循环队列的实现与详解(C语言)
  • (一)80c52学习之旅-起始篇
  • (一)appium-desktop定位元素原理
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)平衡树
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core 成都线下面基会拉开序幕
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET gRPC 和RESTful简单对比
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .Net的DataSet直接与SQL2005交互
  • .Net中的设计模式——Factory Method模式