HDU 1312 Red and Black
来源:互联网 发布:淘宝高仿鞋店推荐 编辑:程序博客网 时间:2024/04/30 09:42
题目大意:一个人在一个铺满红砖和黑砖的房间里面走,只能走黑砖,并且只能上下左右走。让你输入放假宽和长(开始没仔细看,以为长和宽,结果一直不对,囧),再给你这个人的初始位置,问这个人最多能走多少块黑砖。我的第一道DFS,类似入门经典6.4.1的黑白图像那个,照葫芦画瓢,还不会解,参考大牛代码,终于理解,并AC了。。。由于w,h不超过20,递归解出即可。DFS的代码随后在上,先上递归代码。
#include<stdio.h>#include<string.h>char G[22][22];int w,h;int xc,yc;int dfs(int x,int y){ if(x<0||x>=h||y<0||y>=w) //判断边界溢出 { return 0; } if(G[x][y]=='#') { return 0; } if(G[x][y]=='.'||G[x][y]=='@') { G[x][y]='#'; //走过的只需记录变成'#',不需要记录数组了。 return 1+dfs(x-1,y)+dfs(x+1,y)+dfs(x,y-1)+dfs(x,y+1);//递归遍历四周的点 }}int main(){ int i,j; while(scanf("%d %d",&w,&h)!=EOF) { if(w==0&&h==0) { break; } for(i=0; i<h; i++) { getchar(); for(j=0; j<w; j++) { scanf("%c",&G[i][j]);if(G[i][j]=='@')//记录初始位置。{ xc=i; yc=j;} } } int ans=dfs(xc,yc); //从初始位置出发. printf("%d\n",ans); } return 0;}
- Red and Black hdu 1312
- HDU 1312 Red and Black
- HDU 1312 Red and Black
- hdu 1312 Red and Black
- Hdu 1312 - Red and Black
- hdu-1312-Red and Black
- hdu 1312Red and Black
- hdu 1312 Red and Black
- hdu - 1312 - Red and Black
- hdu 1312 Red and Black
- hdu 1312 Red and Black
- HDU-1312(red and black)
- HDU 1312 Red and Black
- hdu 1312 Red and Black
- HDU 1312 Red and Black
- hdu 1312 Red and Black
- hdu 1312 Red and Black
- hdu 1312 Red and Black
- MFC开发必须了解的常用宏和指令
- 顶层 pom 中的 dependencies 与 dependencyManagement 区别
- C++中引用(&)的用法和应用实例
- AndroidManifest.xml 详解 2 配置 详解
- ARP协议分析
- HDU 1312 Red and Black
- 分享一个学习PL/SQL的外国的好网站
- sql注入整理
- temp
- JFreeChart
- lhgdialog
- 快速排序 平均时间复杂度 分析(random pivot)
- WPF 获取主程序(主窗口)对象
- 提示框进度条第三方库之MBProgressHUD