题目名称 2111. [NOIP 2015PJ]扫雷游戏
输入输出 2015mine.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcqw 于2015-11-09加入
开放分组 全部用户
提交状态
分类标签
NOIP/CSP 图论 字符串
分享题解
通过:308, 提交:552, 通过率:55.8%
Gravatar柯哀王道 100 0.000 s 0.00 MiB C++
Gravataraccepted 100 0.000 s 0.00 MiB C++
Gravataryeyeye 100 0.000 s 0.00 MiB C++
GravatarRegnig Etalsnart 100 0.000 s 0.00 MiB C++
GravatarHyoi_0Koto 100 0.000 s 0.00 MiB C++
GravatarYoungsc 100 0.000 s 0.00 MiB C++
Gravatar戒酒的李白 100 0.000 s 0.00 MiB C++
Gravatar夜莺 100 0.000 s 0.00 MiB C++
Gravatar夜莺 100 0.000 s 0.00 MiB C++
Gravatar锝镆氪锂铽 100 0.000 s 0.00 MiB C++
关于 扫雷游戏 的近10条评论(全部评论)
#include<iostream>
#include<cstdio>
using namespace std;
char a[101][101];
int b[101][101];
int main(){
freopen("2015mine.in","r",stdin);
freopen("2015mine.out","w",stdout);
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(a[i][j]=='*'){
if(a[i+1][j]=='?')b[i+1][j]++;
if(a[i][j+1]=='?')b[i][j+1]++;
if(a[i-1][j]=='?')b[i-1][j]++;
if(a[i][j-1]=='?')b[i][j-1]++;
if(a[i+1][j+1]=='?')b[i+1][j+1]++;
if(a[i+1][j-1]=='?')b[i+1][j-1]++;
if(a[i-1][j-1]=='?')b[i-1][j-1]++;
if(a[i-1][j+1]=='?')b[i-1][j+1]++;
}
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(a[i][j]=='*'){
cout<<"*";
}else{
cout<<b[i][j];
}
}
cout<<endl;
}
return 0;
}回复 @羊凢 :
Gravatar10001
2018-11-26 18:34 11楼
#include<iostream>
#include<cstdio>
using namespace std;
char a[101][101];
int b[101][101];
int main(){
freopen("2015mine.in","r",stdin);
freopen("2015mine.out","w",stdout);
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(a[i][j]=='*'){
if(a[i+1][j]=='?')b[i+1][j]++;
if(a[i][j+1]=='?')b[i][j+1]++;
if(a[i-1][j]=='?')b[i-1][j]++;
if(a[i][j-1]=='?')b[i][j-1]++;
if(a[i+1][j+1]=='?')b[i+1][j+1]++;
if(a[i+1][j-1]=='?')b[i+1][j-1]++;
if(a[i-1][j-1]=='?')b[i-1][j-1]++;
if(a[i-1][j+1]=='?')b[i-1][j+1]++;
}
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(a[i][j]=='*'){
cout<<"*";
}else{
cout<<b[i][j];
}
}
cout<<endl;
}
return 0;
}
暴力
Gravatar羊凢
2018-10-23 17:30 10楼
回复 @hjf222289 :
呵呵呵呵呵呵呵呵呵呵呵呵呵呵 张函语真皮
GravatarConsciousness.M
2018-09-14 12:52 9楼

天秀
陈独秀
Gravatar张函语
2018-09-14 12:51 8楼
终于过了
我对不起江东父老
Gravatar2018noip必胜!
2018-09-09 15:13 7楼
暴搜。。。
Gravatar小字、小瓶子
2017-03-27 13:54 6楼
回复 @xxx :
您的字号太大了,以至于很大程度上影响了他人的对题库的正常使用。请麻烦您将字号修改到正常大小,谢谢!
Gravatarhjf222289
2015-12-13 17:17 5楼
GravatarOhYee
2015-12-05 18:00 4楼
复赛留念
Gravatar宇智波瞎
2015-11-22 21:36 3楼
我很想知道今年普及组的分数会比去年高多少
Gravatargg
2015-11-15 15:26 2楼

2111. [NOIP 2015PJ]扫雷游戏

★   输入文件:2015mine.in   输出文件:2015mine.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

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

现在给出 n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

【输入格式】

输入第一行是用一个空格隔开的两个整数 n 和 m,分别表示雷区的行数和列数。 接下来 n 行,每行 m 个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。

【输出格式】

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

【样例输入】

3 3
*??
???
?*?

【样例输出】

*10
221
1*1

【数据说明】

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