每次从敲掉的位置开始bfs就行了,因为敲掉一个方块,只会直接影响其周边的方块,一层层bfs就能找出所有的跌落方块。

 1 #include <cstdio>
 2 #include <queue>
 3 using namespace std;
 4 queue <int> que[2];
 5 int n,m,q,T;
 6 int mx[] = {-1,1,0,0},my[] = {0,0,-1,1};
 7 bool hav[2050][2050];
 8 bool drp(int nx,int ny)
 9 {
10     if (hav[nx][ny] == false)
11         return false;
12     if (nx > n || nx < 1 || ny > m || ny < 1)
13         return false;
14     if ((hav[nx - 1][ny] && hav[nx + 1][ny]) || (hav[nx][ny - 1] && hav[nx][ny + 1]))
15         return false;
16     return true;
17 }
18 int bfs(int sx,int sy)
19 {
20     if (hav[sx][sy] == false)
21         return 0;
22     int res = 1;
23     que[0].push(sx);
24     que[1].push(sy);
25     hav[sx][sy] = false;
26     while (que[0].empty() == false)
27     {
28         int tx = que[0].front();
29         int ty = que[1].front();
30         que[0].pop();
31         que[1].pop();
32         for (int i = 0;i <= 3;i++)
33         {
34             int nx = tx + mx[i];
35             int ny = ty + my[i];
36             if (drp(nx,ny) == true)
37             {
38                 hav[nx][ny] = false;
39                 res++;
40                 que[0].push(nx);
41                 que[1].push(ny);
42             }
43         }
44     }
45     return res;
46 }
47 int main()
48 {
49     for (scanf("%d",&T); T != 0; T--)
50     {
51         scanf("%d%d%d",&n,&m,&q);
52         for (int i = 0;i <= n + 1;i++)
53             for (int j = 0;j <= m + 1;j++)
54                 hav[i][j] = true;
55         int tx,ty;
56         for (int i = 1; i <= q; i++)
57         {
58             scanf("%d%d",&tx,&ty);
59             printf("%d\n",bfs(tx,ty));
60         }
61     }
62     return 0;
63 }

转载于:https://www.cnblogs.com/iat14/p/11421979.html

hdu 6699 Block Breaker BFS相关推荐

  1. HDU - 1495 非常可乐(BFS,数学)

    HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...

  2. HDU 2653 (记忆化BFS搜索+优先队列)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2653 题目大意:迷宫中有普通点和陷阱.其中普通点可以走可以飞,但是陷阱只能飞.走耗时1,飞耗时2.但 ...

  3. HDU 2977 Color Squares BFS

    题目描述: Problem Description You have a 3 * 3 board of color squares. Each square is either empty or ha ...

  4. HDU 4856 Tunnels(BFS+状压DP)

    HDU 4856 Tunnels 题目链接 题意:给定一些管道.然后管道之间走是不用时间的,陆地上有障碍.陆地上走一步花费时间1,求遍历全部管道须要的最短时间.每一个管道仅仅能走一次 思路:先BFS预 ...

  5. HDU 2102 题解(BFS 广度优先搜索 练习题)

    原题链接,但是HDU现在校外提交需要审核 欢迎来 SCPC OJ提交 知识点 : BFS(广搜/宽搜) 原题: 描述: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生 ...

  6. HDU 1104 Remainder (BFS)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1104 题意:给你一个n.m.k,有四种操作n+m,n-m,n*m,n%m,问你最少经过多少步,使得最后 ...

  7. hdu 5040 Instrusive【BFS+优先队列】

    2014北京网络赛09题,hdu 5040 这次网络赛真是惨,也怪做题策略没想好,当时切完签到题之类的水题之后,马上就去看06青蛙那题去了.结果被那只死青蛙给坑惨了T_T...搞了四小时没搞出来... ...

  8. hdu 1728 逃离迷宫 (bfs)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. hdu 1495 非常可乐(BFS)

    题目链接:hdu1495 共有6种操作,x-->y,x-->z,y-->x,y-->z,z-->x,z-->y #include<stdio.h> #i ...

  10. HDU 1254 推箱子 BFS

    囧,一开始没有管人的情况,只看箱子,果然SB了. #include <cstdio> #include <cstring> #include <iostream> ...

最新文章

  1. 【TensorFlow2.0】TensorFlow2.0专栏上线,你来吗?
  2. 数据可视化必修课 - 图表篇
  3. Android开发之旅:应用程序基础及组件
  4. 数学笔记--初等数学
  5. springMVC rest风格
  6. html是什么1002无标题,Jsf页面为普通/无标题的文本html
  7. 2021-05-06 git 设置XX门8580端口代理访问github
  8. 面向对象编程思想---OOP
  9. 2018百度之星程序设计大赛资格赛
  10. 微信语音amr文件转mp3
  11. html编写购物网站页面练习(一)
  12. 如何将零碎信息结构化并做到有序安放,以实现知识积累?
  13. 5G消息是什么?RCS又是什么?让我们一探究竟
  14. 关于字符的一些Tips
  15. 播放器,解码器,分离,滤镜概念和区别
  16. Windows Phone 7游戏高级编程:使用XNA Game Studio 4
  17. 电容笔哪个厂家的产品比较好?苹果平板的电容笔推荐
  18. iOS区分不同版本URL schema
  19. Golang------基础:if条件、switch、for循环、goto、格式化字符串、运算符
  20. 如何使夜游项目更具有参观性

热门文章

  1. 【雕爷学编程】MicroPython手册之 ESP32-CAM 机器人视觉
  2. 如何让公司员工认识和逐步接受OA系统
  3. 广东专插本计算机专业分数线,广东专插本各专业历年分数线
  4. wepy build --watch报错 ERR! Parse WePY config failed. Are you trying to use 解决
  5. python 字符串转换,如:IloveYOUmoreTHANiCANsay=I love you more than i can say`
  6. osg gis编译日志
  7. oracle在触发器中调用函数,Oracle中通过:触发器,存储过程,Function调用实现解析Clob字段...
  8. 阿里云搭建大数据平台(4):Yarn配置以及日志聚合以及优化
  9. 中航工业洪都交付C919大飞机机身等直段部段
  10. 中国一次性无菌胰岛素注射器市场趋势报告、技术动态创新及市场预测