pku_1111_Image Perimeters
来源:互联网 发布:微信删好友软件 编辑:程序博客网 时间:2024/06/05 00:24
挺有意思的搜索题.难度很基础.
题目大意:
给一个图像,要求从一个点开始搜,这个点所在的八连快的边长.
解题思想:
首先是深度优先或广度优先搜索8连块,然后对于没搜到的一个X像素,判断周围四个点是否是.或者越界.如果是就边长+1.
源代码:
#include <myhead>const int N=27;int n,m;int ans;char graph[N][N];inline int cmp(int x,int y) {if(x>n||y>m)return 1;if(graph[x][y]=='.')return 1;return 0;}int pre(int s,int t) {int x,y,sum=0;for(int i=0;i<4;++i) {x=s+dx[i];y=t+dy[i];sum+=cmp(x,y);}return sum;}void dfs(int s,int t) {ans+=pre(s,t);int x,y;for(int i=0;i<8;++i) {x=s+dx1[i];y=t+dy1[i];if(graph[x][y]!='X') continue;graph[x][y]='@';dfs(x,y);}}int main() {int s,t;while(scanf("%d%d%d%d",&n,&m,&s,&t),n) {ans=0;memset(graph,'.',sizeof(graph));for(int i=1;i<=n;++i) {scanf("%s",graph[i]+1);}graph[s][t]='@';dfs(s,t);printf("%d\n",ans);}return 0;}
- pku_1111_Image Perimeters
- poj1111Image Perimeters
- Image Perimeters
- poj_1111Image Perimeters
- Image Perimeters
- Image Perimeters
- ZOJ 1047 Image Perimeters
- POJ 1111 Image Perimeters
- poj 1111 Image Perimeters
- 1111 Image Perimeters
- ZOJ1047 Image Perimeters
- POJ 1111 Image Perimeters
- Poj 1111 Image Perimeters
- POJ 1111 - Image Perimeters
- poj 1111 Image Perimeters
- POJ1111:Image Perimeters(DFS)
- POJ-1111-Image Perimeters
- poj1111 Image Perimeters
- POJ 1459 Power Network
- Python局部变量与全局变量
- 使用 System.Net.Mail.MailMessage 发送电子邮件
- 把握销售中的八个细节记好销售日记
- Win7 下装 Ubuntu 双系统遇到的一些问题及解决
- pku_1111_Image Perimeters
- lua中Function
- SGU 168
- linux内核调度器进化史:O(n)->O(1)->O(log(n))
- Lua的function、closure和upvalue
- apache在Windows下单线程巨慢无比解决办法,,,,
- VC++中CMAP用法
- open-drain, push-pull,MOSFET, MOS管,三极管等基础知识
- 谈谈我的首个开源项目WeiboSpider(1)——单元测试