ZOJ 1047 Image Perimeters
来源:互联网 发布:windows bitlocker 编辑:程序博客网 时间:2024/05/16 20:30
题目地址:点击打开链接
思路:挺好的一题
AC代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};int diagonal[4][2] = {{-1,-1},{-1,1},{1,-1},{1,1}},visit[25][25];int m,n,count1;char map1[25][25];void dfs(int x,int y){ int i,newx,newy; visit[x][y] = 1; for(i=0; i<4; i++)//上下左右搜 { newx = x + dir[i][0]; newy = y + dir[i][1]; if(map1[newx][newy] == 'X' && visit[newx][newy] == 0) dfs(newx,newy); else if(map1[newx][newy] == '.') count1++; } for(i=0; i<4; i++)//对角线搜 { newx = x + diagonal[i][0]; newy = y + diagonal[i][1]; if(map1[newx][newy] == 'X' && visit[newx][newy] == 0) dfs(newx,newy); }}int main(){ int i,j; int click_x,click_y; while(scanf("%d%d%d%d",&m,&n,&click_x,&click_y)) { count1 = 0; if(m + n + click_x + click_y == 0) break; memset(map1,'.',sizeof(map1));//在外面围一圈.便于判断 memset(visit,0,sizeof(visit)); for(i=1; i<=m; i++) { for(j=1; j<=n; j++) { cin>>map1[i][j]; } } dfs(click_x,click_y); printf("%d\n",count1); } return 0;}
0 0
- ZOJ 1047 Image Perimeters
- ZOJ 1047 Image Perimeters
- ZOJ 1047 Image Perimeters
- ZOJ 1047 Image Perimeters
- ZOJ - 1047 Image Perimeters
- ZOJ 1047 Image Perimeters
- ZOJ 1047 Image Perimeters
- ZOJ 1047Image Perimeters (BFS)
- ZOJ 1047 Image Perimeters (dfs)
- poj 1111||zoj 1047 Image Perimeters(dfs)
- zoj 1047 Image Perimeters
- 深度优先搜索-ZOJ 1047 Image Perimeters
- ZOJ 1047 Image Perimeters(dfs+技巧)
- ZOJ 1047 Image Perimeters(BFS搜索)
- zoj 1047 || poj 1111 Image Perimeters(DFS water~)
- hdu 1047 Image Perimeters
- Image Perimeters
- Image Perimeters
- DWR框架快速入门<学习随笔>
- Android 学习历程摘要(五)
- LeetCode题解:Letter Combinations of a Phone Number
- libgdx骨骼动画例子
- oracle学习笔记 ---- 多表联查
- ZOJ 1047 Image Perimeters
- 北大是泉水,清华是岩浆
- LeetCode(233)Number of Digit One
- 使用Samba实现Linux与Windows文件共享实践
- 模板文件读取和输出
- 八月,整理一些无聊的资料,以便无聊的时候看
- 话单数据完整流程
- LeetCode题解:4Sum
- Android常用框架