博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1312 Red and Black(经典DFS)
阅读量:5325 次
发布时间:2019-06-14

本文共 1237 字,大约阅读时间需要 4 分钟。

嗯...

 

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312

 

一道很经典的dfs,设置上下左右四个方向,读入时记下起点,然后跑dfs即可...最后答案加上起点的1,无需回溯!!

 

AC代码:

1 #include
2 #include
3 #include
4 5 using namespace std; 6 7 int dir[4][2] = {
{-1, 0}, {
1, 0}, {
0, -1}, {
0, 1}}; 8 9 int n, m, ans;10 bool flag[25][25];11 char g[25][25];12 13 inline void dfs(int x, int y){14 for(int i = 0; i < 4; i++){15 int nx = x + dir[i][0];16 int ny = y + dir[i][1];17 if(nx <= m && ny <= n && nx > 0 && ny > 0 && !flag[nx][ny] && g[nx][ny] == '.'){18 ans++;19 flag[nx][ny] = 1;20 dfs(nx, ny);21 }22 }23 }24 25 int main(){26 while(~scanf("%d%d", &n, &m) && n != 0 && m != 0){27 int x, y;28 memset(flag, 0, sizeof(flag));29 for(int i = 1; i <= m; i++){30 for(int j = 1; j <= n; j++){31 cin >> g[i][j];32 if(g[i][j] == '@'){ x = i; y = j;}33 }34 }35 ans = 0;36 flag[x][y] = 1;37 dfs(x, y);38 printf("%d\n", ans + 1);39 }40 return 0;41 }42
AC代码

 

转载于:https://www.cnblogs.com/New-ljx/p/11436787.html

你可能感兴趣的文章
NTP服务器配置
查看>>
关于 linux 的 limit 的设置
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
vim中文帮助教程
查看>>
MySQL基础3
查看>>
RxJS & Angular
查看>>
面向对象(多异常的声明与处理)
查看>>
MTK笔记
查看>>
ERROR: duplicate key value violates unique constraint "xxx"
查看>>
激活office 365 的启动文件
查看>>
无法根据中文查找
查看>>
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>