2018-1-28

这道题我用的深搜,花了挺长的时间才AC
#include<iostream>
#include<cstring>
#define INF 0x3f3f3f3f
using namespace std;struct zb{int first,second;
}s;const int MAX = 20;
int x[MAX+1][MAX+1],y[MAX+1][MAX+1];
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
int w,h,sum;bool isvalid(int i,int j){if (i<1||i>h||j<1||j>w) return false;return true;
}void dfs(int i,int j,int cnt){if (cnt>=10){return;}for (int k=0;k<4;k++){int p=i+dx[k],q=j+dy[k];if (isvalid(p,q)&&x[p][q]!=1){while (isvalid(p,q)){//一直朝着前方走if (x[p][q]==3){//遇见了终点,overcnt++;sum=min(cnt,sum);break;}if (x[p][q]==1){//遇见了障碍物,overbreak;}if (x[p][q]==0){p=p+dx[k];q=q+dy[k];//成功滑过}}if (x[p][q]==1){x[p][q]=0;//将遇见的障碍物去除dfs(p-dx[k],q-dy[k],cnt+1);x[p][q]=1;//恢复障碍物}}}
}int main(){while (cin>>w>>h){if (w==0&&h==0) break;memset(x,-1,sizeof(x));sum=INF;for (int i=1;i<=h;i++){for (int j=1;j<=w;j++){cin>>x[i][j];if (x[i][j]==2){//找到起点s.first=i;s.second=j;}}}x[s.first][s.second]=0; //将起点的值设置为0,即表示那个冰壶?可以滑过dfs(s.first,s.second,0);if (sum>10) cout<<"-1"<<endl;else cout<<sum<<endl;}return 0;
}

poj3009深度优先搜索挑战程序设计竞赛相关推荐

  1. poj3050 穷竭搜索 挑战程序设计竞赛

    2018-1-31 一开始题目没有读懂,没有看到样例中的唯一的2... 这题用STL里的set求解极为方便,因为set里的元素是不相同的,最后只要输出它的size即可 #include<iost ...

  2. poj1979 深度优先搜索 挑战程式设计竞赛

    2018-1-26 直接就用深搜即可,这里我把访问过的点标记为'#',下一次不可能再访问了, 注意这里根本就不需要我们回溯,一个点只能被访问一次. #include<iostream> # ...

  3. 《挑战程序设计竞赛》--初级篇习题POJ部分【穷竭搜索+贪心】

    最近看了<挑战程序设计竞赛>初级篇,这里总结一下部分poj上的练习题,主要涉及方面为: 穷竭搜索 and 贪心算法 具体题目: 简单导航 一.穷竭搜索 二.贪心算法 一.穷竭搜索 穷竭搜索 ...

  4. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  5. 挑战程序设计竞赛(第2版)》

    <挑战程序设计竞赛(第2版)> 基本信息 作者: (日)秋叶拓哉 岩田阳一 北川宜稔 译者: 巫泽俊 庄俊元 李津羽 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787 ...

  6. ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)

    白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...

  7. 【操作指导 | 代码实现】挑战程序设计竞赛2:算法和数据结构

    书籍封面 第一章 前言 1. 本人衷心建议 ~~~~~~       如果你是一位初学者,我指的是你只会基本的 C/C++ 编程,即使编的很烂,这本书对于你算法和数据结构的提升非常有帮助,所涉及的每一 ...

  8. 挑战程序设计竞赛——详解DFS及BFS

    挑战程序设计竞赛--详解DFS及BFS 一.学会要用到的stl函数,Stack.Quene.Pair 1.Stack(DFS隐式的用到,并与Queue对比记忆) 头文件==#include== sta ...

  9. 《挑战程序设计竞赛》 读后感(转载)

    <挑战程序设计竞赛> 读后感 最近要开始准备面试找工作,算法是准备的重中之重,舍友推荐了<挑战程序设计竞赛>这本书.花了一周的时间大体过了一遍,该书真切地让我理解了" ...

最新文章

  1. python读数据-用 Python 的输入输出功能读取和写入数据
  2. 2020年十大数据中心行业趋势
  3. c语言 线程a每隔10秒执行一次,线程b每隔100秒执行一次,线程池执行时多线程每隔100ms执行一次线程任务 求解答...
  4. Ribbon-2通过代码自定义配置ribbon
  5. python的中文文本挖掘库snownlp进行购物评论文本情感分析实例
  6. iOS----------UITextField实现过滤选中状态拼音
  7. codesys raspberry pi_pi进不去的几种解决方法!
  8. 2017.3.30 寿司晚宴 失败总结
  9. Mongodb常规操作【一】
  10. “技术驱动创新”正成为企业发展新方向,开发者该如何修炼自己?
  11. 谈谈spring-boot不同包结构下,同样的类名冲突导致服务启动失败解决方案
  12. Gitlab管理Create Merge Request,new Merge Request创建合并请求
  13. matlab 点太多,matlab输出参数太多
  14. 解决“为了对电脑进行保护,已经阻止此应用”问题
  15. Java获取国内手机号码归属地
  16. uvm event 事件机制
  17. 云端守望者(下):十八般武艺
  18. storyboard搭建项目_Storyboard
  19. php 检测数组内是否有空值,判断PHP数组是否为空的代码
  20. SVM(六):带松弛变量的SVM数学模型

热门文章

  1. 绕固定坐标轴旋转与绕自身坐标轴旋转一致性证明
  2. 德国80%的统计学教授都会答错的6个与P值有关的问题!
  3. 感到压力时,你秃的是头,而TA秃的是屁股
  4. 送书 | 师妹越多,团队集体智慧越高,当占比80%时,达到巅峰
  5. android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式
  6. STM32H743+CubeMX-双路FDCAN同时工作的终极方案(裸机)
  7. STM32学习之总线与时钟
  8. java 全排列 非递归_全排列(递归与非递归实现) | 学步园
  9. Linux基础学习四:Linux常用的命令(非常详细)
  10. eclipse远程连接hadoop_hadoop集群搭建详细方法