https://www.luogu.org/problem/P1141

思路:找到每一个连通块,不同连通块的标记不同,给标记赋值成该连通块的数量

 1 // luogu-judger-enable-o2
 2 #include <cstdio>
 3 #include <iostream>
 4 #include <algorithm>
 5 #include <cmath>
 6 #include <queue>
 7 #include <vector>
 8 #include <cstring>
 9 #include <map>
10 #define mem(a) memset(a,0,sizeof(a))
11 using namespace std;
12 typedef long long ll;
13 const int maxn = 200005;
14 const ll INF = 0x3f3f3f3f3f;
15 int dir[8][2]= {2,1,1,2,-2,1,-1,2,2,-1,1,-2,-2,-1,-1,-2};
16 int dir2[4][2]= {0,1,0,-1,1,0,-1,0};
17 bool flag;
18 int vis[1005][1005],sum[1000005];
19 int n,m,countt,num;
20 string s[1005];
21 void dfs(int x,int y){
22     countt++;
23     vis[x][y] = num;
24     for(int i = 0; i < 4; i++){
25         int fx = x + dir2[i][0],fy = y + dir2[i][1];
26         if(fx >=0 && fx < n && fy >=0 && fy < n && !vis[fx][fy] && s[x][y] == '0' && s[fx][fy] == '1')
27             dfs(fx,fy);
28         if(fx >=0 && fx < n && fy >=0 && fy < n && !vis[fx][fy] && s[x][y] == '1' && s[fx][fy] == '0')
29             dfs(fx,fy);
30     }
31 }
32 int main()
33 {
34
35     while(cin >> n >> m){
36         mem(vis);
37         mem(sum);
38         num = 1;
39         for(int i = 0; i < n; i++)
40             cin >> s[i];
41         for(int i = 0; i < n; i++){
42             for(int j = 0; j < n; j++){
43                 if(vis[i][j] == 0)
44                 {
45                     countt = 0;
46                     vis[i][j] = num;
47                     dfs(i,j);
48                     sum[num] = countt;
49                     //cout << sum[num] << endl;
50                     num++;
51                 }
52             }
53         }
54         int x, y;
55         //for(int i = 1; i < num; i++) cout << sum[i] << endl;
56         for(int i = 0; i < m; i++){
57             cin >> x >> y;
58             cout << sum[vis[x-1][y-1]] << endl;
59         }
60     }
61     return 0;
62 }

转载于:https://www.cnblogs.com/LLLAIH/p/11294057.html

洛谷 P1141 01迷宫(dfs)相关推荐

  1. 洛谷P1141 01迷宫【记忆化搜索】

    题目链接:P1141 01迷宫 程序说明: 可以用bfs来做,但是数据毒瘤,如果每次询问都运行一次bfs,会有三个TLE..可以将路途经过的点储存起来并且记录答案,如果询问的点已经被记录了答案,直接输 ...

  2. 洛谷P1141 01迷宫

    因为各种乱七八糟的原因,学搜索实在是学了太久了也咕了好久博客啊.准备再做一遍之前写过的题顺便补一下博客qwq 01迷宫 [题目链接](https://www.luogu.org/problemnew/ ...

  3. 洛谷 P1238 走迷宫【搜索】【DFS】

    洛谷 P1238 走迷宫 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 洛谷 P1238 走迷宫 二.题目分析 (一)算法标签 搜索 DFS ( ...

  4. 洛谷 P1433 吃奶酪 dfs剪枝

    洛谷 P1433 吃奶酪 dfs剪枝 题解: dfs+剪枝,不过现在好像被卡时间了,第10个点过不了.. 代码如下: #include<iostream> #include<algo ...

  5. bfs:01迷宫(洛谷P1141)

    洛谷传送门 解析 乍一看:bfs板子题 冰法师最棒了 然鹅 看了一眼数据范围 心中已有画面 <面 堂 发 黑> 怎么办嘞? 我们想到: 因为该题来与去的可逆性 我们搜一次后,这些点以后都不 ...

  6. 洛谷P1363 幻象迷宫(DFS)

    输入样例#1: 5 4 ##.# ##S# #-# #.## #-# 5 4 ##.# ##S# #-# -#. #.## 输出样例#1: Yes No 大概就是说给出一个01迷宫类的地图,按照这个地 ...

  7. 2019.03.04【ZJOI2018】【BZOJ5213】【洛谷P4339】迷宫(自动机)(数论)

    BZOJ传送门 洛谷传送门 解析: 这道题本质其实是要最小化一个能够接受所有mmm进制下KKK的倍数的自动机. 显然我们有一个方案就是KKK个节点,iii的第jjj条边向(i∗m+j)%K(i*m+j ...

  8. 01迷宫(洛谷-P1141)

    题目描述 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上. 你的任务是:对于给定的迷宫, ...

  9. 洛谷P1605:迷宫(DFS)

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫中移动有上下左右 ...

最新文章

  1. “夸夸机器人”App来了:变身百万粉丝大V,48万人给你的帖子点赞
  2. CISCO PIX/ASA Failover 技术初步学习
  3. 公钥,私钥,SSL(讲的很生动)
  4. 服务器升级中不能修改,windows10下更新服务器为何改不了了
  5. div禁用,不可点击
  6. Mysql 必知必会(一)
  7. Vue移动端项目——Vant 移动端 REM 适配
  8. 数据结构-哈希与映射
  9. jQuery中ajax请求的六种方法(三、五):$.getScript()方法
  10. 解决UICollectionViewCell/UITableViewCell因重用机制导致的错乱问题
  11. 北美程序员面试常见问题
  12. 窥探JAVA WEB
  13. microsoft mysql下载_MySQL下载与安装+Jmeter
  14. 攻防世界 mobile 安卓移动端简单题练习区 答题(1-12题解)
  15. checking for tgetent()... configure: error: NOT FOUND!
  16. ucinet计算聚类系数大于1怎么办_ucinet使用说明技巧.ppt
  17. 国内浏览器双核模式 默认切换chrome内核
  18. 一款用C++语言实现的3D游戏引擎(附源码),适用于想学3D游戏开发
  19. Caché 实操《Caché 算法与数据结构-数组原理》学习笔记
  20. 人物渲染篇(一) —— 基础卡通渲染 上

热门文章

  1. CDLL和WinDLL的区别
  2. 这些Python代码技巧,你肯定还不知道
  3. CVPR2020| 最新CVPR2020论文抢先看,附全部下载链接!
  4. 收藏!目标检测优质综述论文总结!
  5. 收藏 | 评述深度学习的发展
  6. 何恺明组又出神作!最新论文提出全景分割新方法
  7. python导入requests库一直报错原因总结_python pip 安装库文件报错:pip install ImportError: No module named _internal...
  8. 梯度下降法-深度AI
  9. Python3 Ocr 初探
  10. tar (child): bzip2: Cannot exec: No such file or directory