hdu 6699 Block Breaker BFS
每次从敲掉的位置开始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相关推荐
- HDU - 1495 非常可乐(BFS,数学)
HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...
- HDU 2653 (记忆化BFS搜索+优先队列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2653 题目大意:迷宫中有普通点和陷阱.其中普通点可以走可以飞,但是陷阱只能飞.走耗时1,飞耗时2.但 ...
- HDU 2977 Color Squares BFS
题目描述: Problem Description You have a 3 * 3 board of color squares. Each square is either empty or ha ...
- HDU 4856 Tunnels(BFS+状压DP)
HDU 4856 Tunnels 题目链接 题意:给定一些管道.然后管道之间走是不用时间的,陆地上有障碍.陆地上走一步花费时间1,求遍历全部管道须要的最短时间.每一个管道仅仅能走一次 思路:先BFS预 ...
- HDU 2102 题解(BFS 广度优先搜索 练习题)
原题链接,但是HDU现在校外提交需要审核 欢迎来 SCPC OJ提交 知识点 : BFS(广搜/宽搜) 原题: 描述: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生 ...
- HDU 1104 Remainder (BFS)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1104 题意:给你一个n.m.k,有四种操作n+m,n-m,n*m,n%m,问你最少经过多少步,使得最后 ...
- hdu 5040 Instrusive【BFS+优先队列】
2014北京网络赛09题,hdu 5040 这次网络赛真是惨,也怪做题策略没想好,当时切完签到题之类的水题之后,马上就去看06青蛙那题去了.结果被那只死青蛙给坑惨了T_T...搞了四小时没搞出来... ...
- hdu 1728 逃离迷宫 (bfs)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 1495 非常可乐(BFS)
题目链接:hdu1495 共有6种操作,x-->y,x-->z,y-->x,y-->z,z-->x,z-->y #include<stdio.h> #i ...
- HDU 1254 推箱子 BFS
囧,一开始没有管人的情况,只看箱子,果然SB了. #include <cstdio> #include <cstring> #include <iostream> ...
最新文章
- 【TensorFlow2.0】TensorFlow2.0专栏上线,你来吗?
- 数据可视化必修课 - 图表篇
- Android开发之旅:应用程序基础及组件
- 数学笔记--初等数学
- springMVC rest风格
- html是什么1002无标题,Jsf页面为普通/无标题的文本html
- 2021-05-06 git 设置XX门8580端口代理访问github
- 面向对象编程思想---OOP
- 2018百度之星程序设计大赛资格赛
- 微信语音amr文件转mp3
- html编写购物网站页面练习(一)
- 如何将零碎信息结构化并做到有序安放,以实现知识积累?
- 5G消息是什么?RCS又是什么?让我们一探究竟
- 关于字符的一些Tips
- 播放器,解码器,分离,滤镜概念和区别
- Windows Phone 7游戏高级编程:使用XNA Game Studio 4
- 电容笔哪个厂家的产品比较好?苹果平板的电容笔推荐
- iOS区分不同版本URL schema
- Golang------基础:if条件、switch、for循环、goto、格式化字符串、运算符
- 如何使夜游项目更具有参观性
热门文章
- 【雕爷学编程】MicroPython手册之 ESP32-CAM 机器人视觉
- 如何让公司员工认识和逐步接受OA系统
- 广东专插本计算机专业分数线,广东专插本各专业历年分数线
- wepy build --watch报错 ERR! Parse WePY config failed. Are you trying to use 解决
- python 字符串转换,如:IloveYOUmoreTHANiCANsay=I love you more than i can say`
- osg gis编译日志
- oracle在触发器中调用函数,Oracle中通过:触发器,存储过程,Function调用实现解析Clob字段...
- 阿里云搭建大数据平台(4):Yarn配置以及日志聚合以及优化
- 中航工业洪都交付C919大飞机机身等直段部段
- 中国一次性无菌胰岛素注射器市场趋势报告、技术动态创新及市场预测