红与黑

红与黑
bfs

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
const int N=25;
int n,m;
typedef pair<int ,int> PII;
char g[N][N];
int k,s;
int res=0;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void  bfs(int x,int y)
{  g[x][y]='#';queue<PII>q;q.push({x,y});while(q.size()){ PII t=q.front();q.pop();res++;for(int i=0;i<4;i++){int xx=t.first+dx[i];int yy=t.second+dy[i];if(xx>=0&&xx<n&&yy>=0&&yy<m&&g[xx][yy]=='.'){  g[xx][yy]='#';q.push({xx,yy});  }     }}return ;}
int main()
{while(scanf("%d%d",&m,&n)){res=0; if(n==0||m==0) break; for(int i=0;i<n;i++){cin>>g[i];}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(g[i][j]=='@'){k=i;s=j;}}}bfs(k,s);printf("%d\n",res);}
}

dfs

#include <iostream>using namespace std;const int N = 25;int n, m;
char g[N][N];
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};int dfs(int x, int y)
{int res = 1;g[x][y] = '#';for (int i = 0; i < 4; i ++ ){int a = x + dx[i], b = y + dy[i];if (a >= 0 && a < n && b >= 0 && b < m && g[a][b] == '.')res += dfs(a, b);}return res;
}int main()
{while (cin >> m >> n, n || m){for (int i = 0; i < n; i ++ ) cin >> g[i];int x, y;for (int i = 0; i < n; i ++ )for (int j = 0; j < m; j ++ )if (g[i][j] == '@'){x = i;y = j;}cout << dfs(x, y) << endl;}return 0;
}

acwing3红与黑相关推荐

  1. 信息学奥赛一本通 1216:红与黑 / OpenJudge NOI 2.5 1818

    [题目链接] ybt 1216:红与黑 OpenJudge NOI 2.5 1818:红与黑 [题目考点] 1. 连通块问题 2. 深搜/广搜 [解题思路] 1. 深搜 从第一个格子出发,遍历所有可以 ...

  2. 信息学奥赛一本通(1216:红与黑)

    1216:红与黑 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 17280     通过数: 6739 [题目描述] 有一间长方形的房子,地上铺了红色.黑色两种颜 ...

  3. 文学系列:《红与黑》读书笔记

    "我没有荣幸属于你们那个阶级,你们可以从我身上看见一个乡下人,他不甘心处于卑微的地位而起来反抗罢了......即使我的罪没有那么严重,我也看见有许多人,不会因为我年轻就怜惜我,而是要利用我的 ...

  4. Bailian2816 红与黑【DFS】

    2816:红与黑 总时间限制: 1000ms 内存限制: 65536kB 描述 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一 ...

  5. codevs 2806 红与黑

    codevs 2806 红与黑 2806 红与黑 题目描述 Description 有一个矩形房间,覆盖正方形瓷砖.每块瓷砖涂成了红色或黑色.一名男子站在黑色的瓷砖上,由此出发,可以移到四个相邻瓷砖之 ...

  6. 研发质量管理的“红与黑”

    任何事物都有两点,即都有优点和缺点.成绩和错误,这是辩证的唯物主义思想.研发过程也不例外,总有做的好的和做的不尽如人意的地方.质量人员通常会用"红黑榜"进行晾晒以达到一定的改进效果 ...

  7. AcWing 1113. 红与黑【《信息学奥赛一本通》】【DFS】【BFS】【Flood Fill】

    AcWing 1113. 红与黑 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 解法一(BFS): 解法二(DFS): 四.其它题解 一.题目链接 AcWing 1113. ...

  8. C++红与黑/蘑菇阵

    红与黑 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动.请写一个程序,计算你总共能够到达多少块黑色的瓷砖. 输入包 ...

  9. c++ DFS练习 红与黑

    红与黑是DFS的一题经典练习题,比较简单,尽可能自己打出代码 题目原题如下: There is a rectangular room, covered with square tiles. Each ...

最新文章

  1. 一起谈.NET技术,也玩MVC3.0 Razor自定义视图引擎来修改默认的Views目录结构
  2. 开启Android Q DarkMode | 开启Android Q深色模式 夜间模式
  3. 学习excel的使用技巧一空格替换为0
  4. TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated......(亲测)
  5. 音视频技术开发周刊 | 179
  6. 4 交换机-fanout(订阅发布模式)
  7. IEnumerable 遍历用法
  8. android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现
  9. python xpath定位不到_Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)...
  10. Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?
  11. Pensieve Multi_agent代码详解以及A3C强化学习代码详解
  12. struts1 和struts 2区别
  13. Flutter3.0导入english_words报错flutter\packages\flutter_tools\gradle\flutter.gradle‘ 行: 1156
  14. 感应加热ZVS制作图解
  15. FPGA简单全加器设计
  16. accept4: too many open files; retrying in 1s
  17. 为何moov头在尾部的mp4可以快速播放、拖动
  18. vue 使用Computed实现数据的动态计算
  19. SAP 系统中成本中心调整
  20. oracle 查找非中文,Oracle中如何判断一个字符串是否含有汉字

热门文章

  1. Linux:raid技术及软raid管理命令mdadm详解
  2. BootStrap 卡片
  3. 微软官宣 Win 11 即将到来,网友:没安卓,升个寂寞啊!
  4. 故障:Win7 访问网络共享文件慢
  5. 软件安全性与隐私保护的最佳实践
  6. RTA OS系列介绍04-Alarm
  7. 12岁上中科大,17岁哈佛读博,面对质疑,31岁成为哈佛最年轻华人教授
  8. 1442. 单词处理器
  9. fontweight 失效的原因
  10. 浅谈一种Android客户端架构设计