http://poj.org/problem?id=3009

如果目前起点紧挨着终点,可以直接向终点滚(终点不算障碍)

#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = ;
int maz[maxn][maxn];
int n,m;
const int dx[] = {,-,,};
const int dy[] = {,,,-}; bool in(int x,int y)
{
return x >= && x < n && y >= && y < m;
} bool dfs(int x,int y,int step)
{
if(step == )return maz[x][y] == ;
for(int i = ; i < ; i++)
{
int tx = x + dx[i],ty = y + dy[i];
if(maz[tx][ty] == )continue;
while(in(tx,ty) && maz[tx][ty] == )
{
tx += dx[i];
ty += dy[i];
}
if(!in(tx,ty))continue;
if(maz[tx][ty] == )return true;
maz[tx][ty] = ;
if(dfs(tx - dx[i],ty - dy[i],step - ))
{
return true;
}
maz[tx][ty] = ;
}
return false;
}
int main()
{
while(scanf("%d%d",&m,&n) == && (m || n))
{
for(int i = ; i < n; i++)
{
for(int j = ; j < m; j++)
{
scanf("%d",maz[i] + j);
}
}
for(int x = ; x < n; x++)
{
for(int y = ; y < m; y++)
{
if(maz[x][y] == )
{
maz[x][y] = ;
bool fl = false;
for(int i = ; i < ; i++)
{
if(dfs(x, y ,i))
{
fl = true;
printf("%d\n",i);
break;
}
}
if(!fl)
{
puts("-1");
}
break;
}
}
}
}
return ;
}

POJ 3009 Curling 2.0 回溯,dfs 难度:0的更多相关文章

  1. POJ 3009 Curling 2.0【带回溯DFS】

    POJ 3009 题意: 给出一个w*h的地图,其中0代表空地,1代表障碍物,2代表起点,3代表终点,每次行动可以走多个方格,每次只能向附近一格不是障碍物的方向行动,直到碰到障碍物才停下来,此时障碍物 ...

  2. poj 3009 Curling 2.0 (dfs )

    Curling 2.0 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11879   Accepted: 5028 Desc ...

  3. poj 3009 Curling 2.0

    题目来源:http://poj.org/problem?id=3009 一道深搜题目,与一般搜索不同的是,目标得一直往一个方向走,直到出界或者遇到阻碍才换方向. 1 #include<iostr ...

  4. POJ 3009 Curling 2.0 {深度优先搜索}

    原题 $On Planet MM-21, after their Olympic games this year, curling is getting popular. But the rules ...

  5. POJ 1979 Red and Black dfs 难度:0

    http://poj.org/problem?id=1979 #include <cstdio> #include <cstring> using namespace std; ...

  6. POJ 1321 棋盘问题 dfs 难度:0

    http://poj.org/problem?id=1321 注意是在'#'的地方放棋子 矩阵大小不过8*8,即使是8!的时间复杂度也足以承受,可以直接dfs求解 dfs时标注当前点的行和列已被访问, ...

  7. sgu 125 Shtirlits dfs 难度:0

    125. Shtirlits time limit per test: 0.25 sec. memory limit per test: 4096 KB There is a checkered fi ...

  8. POJ 3009 Curling 2.0(DFS + 模拟)

    题目链接:http://poj.org/problem?id=3009 题意: 题目很复杂,直接抽象化解释了.给你一个w * h的矩形格子,其中有包含一个数字“2”和一个数字“3”,剩下的格子由“0” ...

  9. poj 3009 Curling 2.0( dfs )

    题目:http://poj.org/problem?id=3009 参考博客:http://www.cnblogs.com/LK1994/ #include <iostream> #inc ...

随机推荐

  1. JavaScript设计模式-单例模式、模块模式(转载 学习中。。。。)

    (转载地址:http://technicolor.iteye.com/blog/1409656) 之前在<JavaScript小特性-面向对象>里面介绍过JavaScript面向对象的特性 ...

  2. 为什么要使用Hibernate

    因为! a paradigm mismatch between how data is represented in objects versus relational databases ! 对象数 ...

  3. phalcon: 获取参数的方法

    phalcon: 获取参数的方法 一般情况下:GET/POST $this->request->get(参数); $this->request->getPost("参 ...

  4. SwitchCompat 修改颜色

    Ok, so I'm sorry but most of these answers are incomplete or have some minor bug in them. The very c ...

  5. 优之星S900平板电脑root方法

    优之星S900root方法: 尝试百度一键root安卓的apk版本root失败. 电脑上下载百度一键root的Windows版本,平板设置→开发者选项→允许USB调试√,保持唤醒状态√,安全设置→允许 ...

  6. 打开Eclipse时出现"The Eclipse executable launcher was unable to locate its companion shared library"情况的解决办法

    在网上有坑,各种解决方法都有,但似乎我这台64位机器不太给面子,都不能解决: 结果自己找到了解决办法,总结了一下,大多数软件出问题,如果卸载了重新装还是出现问题,一般都是注册表残留的问题: 将ecli ...

  7. Android利用V4包中的SwipeRefreshLayout实现上拉加载

    基本原理 上拉加载或者说滚动到底部时自动加载,都是通过判断是否滚动到了ListView或者其他View的底部,然后触发相应的操作,这里我们以 ListView来说明.因此我们需要在监听ListView ...

  8. Spring注释与简化配置

      在Spring 2.5及以后的版本中,提供了注释和命名空间来简化Spring的配置.下面是一些常用配置分享. 1.@Autowired注释   以前给一个Bean配置属性时,Bean必须配置< ...

  9. Linux基础: 挂载镜像文件(Mount & ISO)

    ISO/Ghost 镜像文件概念(裸机安装,无光驱安装,跨平台安装) ISO是镜像文件:所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例 ...

  10. Uva---10881 Piotr's Ants(蚂蚁)

    Problem DPiotr's AntsTime Limit: 2 seconds "One thing is for certain: there is no stopping them ...