题很简单,广搜,深搜自己随意就好。

BFS 代码:

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;#define N 31int n,m,mat[N][N],vis[N][N];
int dir[8][2]={-1,0, 1,0, 0,-1, 0,1, -1,-1, -1,1, 1,-1, 1,1};struct node{int x,y;
};int judge(int x,int y){if(x>=1 && y>=1 && x<=n && y<=m)return 1;return 0;
}
/*只有当搜到边界时,才需要统计边数!!!*/
void bfs(int x,int y){queue<node> q;int i;memset(vis,0,sizeof(vis));node cur,next;cur.x=x; cur.y=y;vis[cur.x][cur.y]=1;q.push(cur);int sum=0;while(!q.empty()){cur=q.front();q.pop();for(i=0;i<8;i++){next.x=cur.x+dir[i][0];next.y=cur.y+dir[i][1];if(vis[next.x][next.y]==1)continue;if(judge(next.x,next.y) && mat[next.x][next.y]){//在界内 且 可达vis[next.x][next.y]=1;q.push(next);}else if(i<4)sum++;/*八个方向中,只有上下左右需要考虑边界,剩下的四个方向的边界对sum值没有影响*/}}printf("%d\n",sum);
}
int main()
{int i,j,x,y;char ch[2];while(scanf("%d%d%d%d",&n,&m,&x,&y),n){memset(mat,0,sizeof(mat));for(i=1;i<=n;i++){for(j=1;j<=m;j++){scanf("%1s",ch);if(ch[0]=='.')mat[i][j]=0;else mat[i][j]=1;}}if(mat[x][y]==0)puts("0");else bfs(x,y);}return 0;
}

神棍节献礼之——POJ1111 Image Perimeters(bfs)相关推荐

  1. HDU-1459.非常可乐(BFS )

    这道题TLE了很多次,原来一直以为将数字化为最简可以让运算更快,但是去了简化之后才发现,真正耗时的就是化简....还和队友学到了用状态少直接数组模拟刚就能过... 本题大意:给出可乐的体积v1,给出两 ...

  2. HDU1548:A strange lift(Dijkstra或BFS)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1548 题意:电梯每层有一个数,例如第n层有个数k, 那么这一层只能上k层或下k层,但是不能低于一层或高 ...

  3. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

  4. usaco Overfencing 穿越栅栏(BFS)

    Overfencing 穿越栅栏 农夫 John 在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出 了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个" ...

  5. 数据结构--搜索BFS

    文章目录 广度优先搜索 典型例题 广度优先搜索 广度优先搜索类似于树的层次遍历过程.它需要借助一个队列来实现.如图2-1-1所示,要想遍历从v0到v6的每一个顶点,我们可以设v0为第一层,v1.v2. ...

  6. 2017icpc沈阳 G Infinite Fraction Path BFS+剪枝

    题意:给一个长度为n的字符串数组,你可以选定起点跳n次,从i点只能跳到(i*i+1)%n的位置,最后求一个最大字典序. 思路:要求最大的,即每一步都是最大,所以将最大的数都入队进行bfs跳下一步. 剪 ...

  7. HDU - 5876 Sparse Graph 2016 ACM/ICPC 大连网络赛 I题 bfs+set+补图最短路

    题目链接 题意:给的补图,让你求一个源点到其他点的最短距离,因为图太稠密了, 用dij以及spfa根本不得行,这里只能用一种我不会方法来进行,这里用了bfs的方法以及set来维护,分别set维护一个未 ...

  8. 数据结构与算法(7-2)图的遍历(深度优先遍历DFS、广度优先遍历BFS)(分别用邻接矩阵和邻接表实现)

    目录 深度优先遍历(DFS)和广度优先遍历(BFS)原理 1.自己的原理图 2.官方原理图 一.邻接矩阵的深度优先遍历(DFS) 1.原理图 2. 过程: 3.总代码 二.邻接表的深度优先遍历(DFS ...

  9. hiho_1139_二分+bfs搜索

    题目 给定N个点和M条边,从点1出发,到达点T.寻找路径上边的个数小于等于K的路径,求出所有满足条件的路径中最长边长度的最小值.  题目链接:二分      最小化最大值,考虑采用二分搜索.对所有的边 ...

  10. fzu 2150 Fire Game 【身手BFS】

    称号:fzu 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部 ...

最新文章

  1. 2017-2018-1 20155201 实验五 通讯协议设计
  2. redis将散裂中某个值自增_Redis总结
  3. 走捷径修Bug却引起全球大宕机,Salesforce哭着处理了“肇事”工程师
  4. C++/C--STL API查询及免费教程网站
  5. Atitit 理解Monad attilax总结Atiti
  6. windows的消息机制
  7. 山东省计算机二级c语言题,2012计算机二级C语言题库.doc
  8. 2022软考中级软件设计师---易混淆知识点总结1
  9. Activity启动流程(二)system_server进程处理启动Activity请求
  10. 【小滴课堂】独孤求败-小滴云架构大课十八式
  11. numpy矩阵升维,拼接
  12. 两条线段的交点的计算
  13. Codec2入门:框架解析
  14. 保护水资源公益网站html,保护水资源公益广告策划书
  15. iOS APP 瘦身实战
  16. 专利撰写相关文档整理打包及相关基础知识打包
  17. python高效办公
  18. “对不起,我们不招半路出家的程序猿”
  19. [原创]JavaScript模拟ACDSEE简单功能
  20. xwpfdocument 保存修改_java使用POI操作XWPFDocument 生成Word实战(一)【比较详细的】...

热门文章

  1. 快速将bmp批量转换jpg的方法
  2. linux基本知识点汇集
  3. 树莓派+L9110S电机模块
  4. 南京大学计算机科学专硕培养方案,计算机科学与技术专业硕士研究生培养方案(2014版)...
  5. 数码计算机英语单词,数码相机的规格词汇中英对照
  6. FLV视频合并-JAVA代码
  7. 人生八境——古诗词中读懂人生境界
  8. 图文模态交互 | CLIP + GAN = ?
  9. 共享办公平台,提高整体使用率
  10. Android 获取DNS