题目名称 | 2111. [NOIP 2015PJ]扫雷游戏 |
---|---|
输入输出 | 2015mine.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cqw 于2015-11-09加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:319, 提交:569, 通过率:56.06% | ||||
柯哀王道 | 100 | 0.000 s | 0.00 MiB | C++ |
accepted | 100 | 0.000 s | 0.00 MiB | C++ |
yeyeye | 100 | 0.000 s | 0.00 MiB | C++ |
Regnig Etalsnart | 100 | 0.000 s | 0.00 MiB | C++ |
Hyoi_0Koto | 100 | 0.000 s | 0.00 MiB | C++ |
Youngsc | 100 | 0.000 s | 0.00 MiB | C++ |
戒酒的李白 | 100 | 0.000 s | 0.00 MiB | C++ |
夜莺 | 100 | 0.000 s | 0.00 MiB | C++ |
夜莺 | 100 | 0.000 s | 0.00 MiB | C++ |
锝镆氪锂铽 | 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; }回复 @羊凢 :
10001
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; } 暴力
羊凢
2018-10-23 17:30
10楼
| ||||
回复 @hjf222289 :
呵呵呵呵呵呵呵呵呵呵呵呵呵呵 张函语真皮
Consciousness.M
2018-09-14 12:52
9楼
| ||||
秀
天秀 陈独秀
张函语
2018-09-14 12:51
8楼
| ||||
终于过了
我对不起江东父老
2018noip必胜!
2018-09-09 15:13
7楼
| ||||
暴搜。。。
| ||||
回复 @xxx :
您的字号太大了,以至于很大程度上影响了他人的对题库的正常使用。请麻烦您将字号修改到正常大小,谢谢!
hjf222289
2015-12-13 17:17
5楼
| ||||
| ||||
复赛留念
宇智波瞎
2015-11-22 21:36
3楼
| ||||
我很想知道今年普及组的分数会比去年高多少
gg
2015-11-15 15:26
2楼
|
扫雷游戏是一款十分经典的单机小游戏。在 n 行 m 列的雷区中有一些格子含有地雷 (称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时, 该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出 任何地雷格的条件下,找出所有的非地雷格。
现在给出 n 行 m 列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。
输入第一行是用一个空格隔开的两个整数 n 和 m,分别表示雷区的行数和列数。 接下来 n 行,每行 m 个字符,描述了雷区中的地雷分布情况。字符’*’表示相应格子是地雷格,字符’?’表示相应格子是非地雷格。相邻字符之间无分隔符。
输出文件包含 n 行,每行 m 个字符,描述整个雷区。用’*’表示地雷格,用周围 的地雷个数表示非地雷格。相邻字符之间无分隔符。
3 3 *?? ??? ?*?
*10 221 1*1
对于 100%的数据,1≤n≤100,1≤m≤100。