题目要求
题目链接
这题是一道入门难度的题,但很有意思,所以分享一下。
不知道会不会有人考虑到什么连通区域、DFS之类的奇怪内容,抑或是苦于不知道怎么去循环搜索。
其实很简单,开一个大数组,把边留出来,从 1 1 1开始开循环。 每次读到 ∗ * ∗就把当前值赋为1,并于此时判断左边和上边的元素是不是都是0(对应着默认初始化的边界或者已经确定的 . . .)。
你也可以开char数组,只不过需要多一种判断情况,毕竟还有’\0’和 . . .两种可能嘛,其实差不多。
AC代码#include
using namespace std;
int graph[123][123];
int main() {
int n, m, result = 0;
char temp;
cin >> n >> m;
for (int i = 1; i temp;
if (temp == '*') {
graph[i][j] = 1;
if (graph[i-1][j] == 0 && graph[i][j-1] == 0) {
result++;
}
}
}
}
cout
关注
打赏
热门博文
- 【Linux】Ubuntu20.04安装和卸载MySQL8
- 【Linux】Ubuntu 20.04 报错 curl: (23) Failure writing output to destination 的解决方法
- 【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法
- 【JavaScript】处理 @parcel/transformer-js: Browser scripts cannot have imports or exports.
- 【Python】处理TypeError: Plain typing.NoReturn is not valid as type argument
- 【Python】Matplotlib可视化50例
- 【C语言】C语言修改MySQL数据库
- 【Java】从默认包导入类和对象报错的解决方法
- 【Java】panel.getGraphics()报错空指针异常的解决方法
- 【Java】IDEA编译Java项目报错 java: 找不到符号 的解决方法