杭电ACM1312(dfs)
来源:互联网 发布:中科院外籍院士知乎 编辑:程序博客网 时间:2024/04/28 23:54
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312
题目大意:给出一张地图,如果是“.”则可通行,若为“#”不能通行,“@”为起点,求能走过的点的个数(@也算)
解题思路:dfs,但一定要记得在访问之后修改地图的状态,否则会反复访问,陷入死循环,第一次就这样搞坏了…………
AC代码:
#include <iostream>using namespace std;char map[25][25];int dir[4][2] = {0,1,-1,0,0,-1,1,0};int cnt;int w,h;void dfs(int x,int y){cnt++;map[x][y] = '#';//cout<<cnt<<endl;//int nx,ny;for(int i=0;i<4;i++){int nx = x+dir[i][0];int ny = y+dir[i][1];//cout<<"xy"<<x<<" "<<y<<endl;//cout<<"nxny"<<nx<<" "<<ny<<endl;//cout<<map[nx][ny]<<endl;if(map[nx][ny]=='.'&&nx>=0&&nx<h&&ny>=0&&ny<w){dfs(nx,ny);}}return;}int main(){int x,y;while(cin>>w>>h){cnt=0;if(w==0&&h==0)break;for(int i=0;i<h;i++){for(int j=0;j<w;j++){cin>>map[i][j];if(map[i][j]=='@'){x = i;y = j;}}}dfs(x,y);cout<<cnt<<endl;}return 0;}
0 0
- 杭电ACM1312(dfs)
- 杭电ACM1312——Red and Black~~广搜
- 杭电ACM1016(dfs)
- 杭电ACM1241(dfs)
- 杭电 More is better (DFS)
- 杭电1716--排列2(DFS)
- Fire Net 杭电1045(DFS)
- 杭电1045 Fire Net(DFS)
- 杭电1518 Square(DFS+剪枝)
- 杭电1796 Safecracker(DFS)
- 杭电1811 变形课(dfs)
- 杭电-1045Fire Net(DFS)
- 杭电-1015Safecracker(DFS)
- 杭电ACM1010(dfs+剪枝)
- 【杭电1241】Oil Deposits(DFS)
- 杭电2212DFS
- 杭电 acm 2212 DFS
- 杭电1242-Rescue-DFS
- onActivityResult 取不到返回值的问题
- iPhone/iOS开启个人热点的相关位置调整小结
- 标签页,程序开始导航
- SSL与TLS的区别以及介绍
- Shell集合运算
- 杭电ACM1312(dfs)
- version接口
- 实现按钮拖动到底部,与底部按钮互换的功能
- 从这些方面锻炼成为优秀的软件工程师
- 获取手机所有联系人及搜索
- 总结一下打字
- 自己做得json测试类,包含JSONArray,JSONObject,Gson基本使用方法
- 如何得到线程执行完之后返回的结果
- 第六部分: 大数据监管和信息单一视图监管