题目描述
扫雷游戏你一定玩过吧!现在给你若干个n×m的地雷阵,请你计算出每个矩阵中每个单元格相邻单元格内地雷的个数,每个单元格最多有8个相邻的单元格。 0< n,m< =100

(注意两个矩阵之间应该有一个空行,由于oj的格式化这里不能显示出来)

输入

输入包含若干个矩阵,对于每个矩阵,第一行包含两个整数n和m,分别表示这个矩阵的行数和列数。接下来n行每行包含m个字符。安全区域用‘.’表示,有地雷区域用’*'表示。当n=m=0时输入结束。

数据规模和约定
0< n,m< =100

输出
对于第i个矩阵,首先在单独的一行里打印序号:“Field #i:”,接下来的n行中,读入的’.'应被该位置周围的地雷数所代替。输出的每两个矩阵必须用一个空行隔开。

样例输入4  4
*...
....
.*..
....
3  5
**...
.....
.*...
0  0 样例输出Field  #1:
*100
2210
1*10
1110 Field  #2:
**100
33200
1*100 

解题思路:
水题!!!但不知道为什么要考虑边界,感觉不考虑边界也对啊!

AC代码如下:

#include <iostream>
using namespace std;
const int N = 110;
int n, m;
char g[N][N];
char a[N][N];int main() {int count = 0;while (cin >> n >> m, n, m) {count++;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)cin >> g[i][j];for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++) {if (g[i][j] == '*')a[i][j] = '*';else if  (g[i][j] == '.') {int cnt = 0;if ( i + 1 <= n && j <= m && g[i + 1][j] == '*')cnt++;if (i + 1 <= n && j + 1 <= m && g[i + 1][j + 1] == '*')cnt++;if (i + 1 <= n && j - 1 >= 1 &&  g[i + 1][j - 1] == '*')cnt++;if (i - 1 >= 1 && j <= m && g[i - 1][j] == '*')cnt++;if (i - 1 >= 1 && j + 1 <= m && g[i - 1][j + 1] == '*')cnt++;if (i - 1 >= 1 && j - 1 >= 1 && g[i - 1][j - 1] == '*')cnt++;if (i <= n && j + 1 <= m && g[i][j + 1] == '*')cnt++;if (i <= n && j - 1 >= 1 && g[i][j - 1] == '*')cnt++;a[i][j] = cnt + '0';}}cout << "Field #" << count << ": " << endl;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cout << a[i][j];}cout << endl;}cout << endl;}return 0;
}

我感觉这道题不考虑边界也对,但是不知道为什么ac不了,只能拿60分,代码如下:

#include <iostream>
using namespace std;
const int N = 110;
int n, m;
char g[N][N];
char a[N][N];int main() {int count = 0;while (cin >> n >> m, n, m) {for (int i = 0; i <= n + 1; i++)for (int j = 0; j <= m + 1; j++)g[i][j] == '.';count++;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++)cin >> g[i][j];for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++) {if (g[i][j] == '*')a[i][j] = '*';else if  (g[i][j] == '.') {int cnt = 0;if (g[i + 1][j] == '*')cnt++;if (g[i + 1][j + 1] == '*')cnt++;if (g[i + 1][j - 1] == '*')cnt++;if (g[i - 1][j] == '*')cnt++;if (g[i - 1][j + 1] == '*')cnt++;if (g[i - 1][j - 1] == '*')cnt++;if (g[i][j + 1] == '*')cnt++;if (g[i][j - 1] == '*')cnt++;a[i][j] = cnt + '0';}}cout << "Field #" << count << ": " << endl;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cout << a[i][j];}cout << endl;}cout << endl;}return 0;
}

有人知道为什么吗???评论告诉我一下哦,谢谢啦!

[蓝桥杯][算法提高VIP]扫雷-枚举相关推荐

  1. [蓝桥杯][算法提高VIP]断案-枚举

    题目描述 公安人员审问甲.乙.丙.丁四个嫌疑犯,已确知,这四个人当中仅有一人是偷窃者,还知道这四个人的答话,要么完全诚实,要么完全说谎.在回答公安人员的问话中: 甲说:"乙没有偷,是丁偷的. ...

  2. [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  3. [蓝桥杯][算法提高VIP]夺宝奇兵-dp

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  4. [蓝桥杯][算法提高VIP]阮小二买彩票

    [蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...

  5. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  6. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  7. [蓝桥杯][算法提高][vip] 阮小二买彩票

    蓝桥杯 ADV-66 算法提高 阮小二买彩票 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察 ...

  8. [蓝桥杯][算法提高VIP]合并石子(区间dp+平行四边形优化)

    题目描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数.求把所有石子合并成一堆的最小花费. 输入 输入第一行包含一个整数 ...

  9. 摩尔斯电码的c语言程序,[蓝桥杯][算法提高VIP]摩尔斯电码 (C语言代码)

    解题思路: 录入,分段,比较 注意事项: 不要去关注最后的几句话,完全误导人,我用getchar()结合EOF做得出来,但是提交总是报错,蓝桥杯官网和C语言网都一样. 参考代码:#include #i ...

最新文章

  1. SIGIR阿里论文 | 可视化理解深度神经网络CTR预估模型
  2. cdh5.13.1 升/降级SPARK2 (parcel安装的同理)
  3. string获取 倒数 下标_Redis系列:Redis字符串(STRING)介绍
  4. 微型计算机技术习题,微型计算机技术课后习题一二三章答案
  5. Mantis安装过程笔记
  6. 面试过程中千万不要犯这 5 点低级错误
  7. Java-类加载内存分析
  8. .net core 调用c dll_C++ 调用C封装DLL库的两种方式
  9. 分布式文件系统MooseFs部署(二)
  10. Millumin 3 for mac使用教程-创建一个简单的视频映射
  11. Minitab 控制图
  12. 怎么下载英文文献呢?
  13. 【谷粒商城】k8s、devops集群篇(4/4)
  14. C#实现最简单的文本加密方法
  15. 保险箱Pro-加密保护您的照片、视频、账号、联系人、日记
  16. 再续!一篇带你了解那些适合日常使用的开源工具和应用(设计篇)
  17. 樱花落(python)
  18. 签证上的mult是什么意思_美国签证页上面英文表示的是什么意思?
  19. 栈展开(stack unwinding)在destructors中的exceptions
  20. 点击图片显示图片放大的弹窗

热门文章

  1. C语言试题五十八之请编写函数fun,:计算并输出下列多项式的值(sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! )
  2. Android之gravity=“center_vertical“和layout_gravity=“center“的效果
  3. Android之React Native 中组件的生命周期
  4. python语法详解_解析 Python3 基础语法
  5. python浮点数类型与数学_Python3标准库:decimal定点数和浮点数的数学运算
  6. 数学界最恐怖的存在,学过数学的人,一辈子都不会忘记!
  7. 超赞的“数据与算法之美”资料分享!
  8. 《SAS编程与数据挖掘商业案例》学习笔记之十六
  9. redis 查询缓存_Redis缓存总结:淘汰机制、缓存雪崩、数据不一致....
  10. a*算法的时间复杂度_数据结构(1)——算法和时间复杂度