1. #include<iostream>
  2. using namespace std;
  3. int n,m,k;
  4. #define max 100
  5. char mmap[max][max];
  6. int mmin;
  7. #define MIN(a,b) ((a)<(b)?(a):(b));
  8. int x1,x2,y1,y2;
  9. int mmde[4][2]={{0,-1},{1,0},{0,1},{-1,0}};
  10. int visited[max][max];
  11. void dfs(int x,int y,int sum){
  12. if(mmap[x][y]=='3'){
  13. mmin=MIN(sum,mmin);
  14. return; }
  15. else {
  16. int i;
  17. int mx,my;
  18. for(i=0;i<4;i++){
  19. mx=x+mmde[i][0];
  20. my=y+mmde[i][1];
  21.  
  22. if(visited[mx][my]==1||mx<1||mx>n||my<1||my>m||(sum%k!=0&&mmap[mx][my]=='0'))
  23. {continue;}
  24. else if(abs(mx-x2)+abs(my-y2)+sum>mmin)continue;
  25. else
  26. {
  27. visited[mx][my]=1;
  28. dfs(mx,my,sum+1);
  29. visited[mx][my]=0; }
  30. }
  31.  
  32. }
  33. }
  34. int main(){
  35. //scanf("%d%d%d",&n,&m,&k);
  36. while(cin>>n>>m>>k){
  37. int i,j;
  38. memset(visited,0,sizeof(visited));
  39. mmin=10000;
  40. for(i=1;i<=n;i++){
  41. for(j=1;j<=m;j++){
  42. cin>>mmap[i][j];
  43. if(mmap[i][j]=='1')
  44. {x1=i;y1=j;}
  45. else if(mmap[i][j]=='3')
  46. {x2=i;y2=j;}
  47. }
  48. }
  49. visited[x1][y1]=1;
  50. dfs(x1,y1,0);
  51. printf("%d\n",mmin);
  52. }
  53. }

版权声明:本文为博主原创文章,未经博主允许不得转载。

linshi18的更多相关文章

随机推荐

  1. 1025 反转链表(链表,reverse)

    题目: 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则 ...

  2. jQuery,js如何扩展自定义方法

    (jQuery.fn.myMethod=function () { alert('myMethod'); }) (function ($) { $.fn.extend({ myMethod : fun ...

  3. webSocket入门

    原理:Pub-Sub(发布和订阅) 它适用于发送者将数据(发布者)发送给抽象数量的收件人(订阅者),而无需指定他们是谁. 1.是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 ...

  4. 大数据入门第八天——MapReduce详解(三)MR的shuffer、combiner与Yarn集群分析

    /mr的combiner /mr的排序 /mr的shuffle /mr与yarn /mr运行模式 /mr实现join /mr全局图 /mr的压缩 今日提纲 一.流量汇总排序的实现 1.需求 对日志数据 ...

  5. Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)

    首页 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 小程序 消息 登录注册 关闭 quartz_Cron表达式一分钟教程 09-05 ...

  6. python并发编程之多进程理论知识

    一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任 ...

  7. Python之函数的递归、匿名函数、内置函数

    一.函数的递归 ''' 1 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调 ...

  8. Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】

    Spring Cloud(二):服务注册与发现 Eureka[Finchley 版]  发表于 2018-04-15 |  更新于 2018-05-07 |  上一篇主要介绍了相关理论,这一篇开始我们 ...

  9. dom学习要点

    Dom操作 1.文本内容操作 - innerText:操作文本 - innerHtml:操作全内容 //innerText标签: <div id='i2' ><a>土味程序员& ...

  10. Kubernetes探索学习004--深入Kubernetes的Pod

    深入研究学习Pod 首先需要认识到Pod才是Kubernetes项目中最小的编排单位原子单位,凡是涉及到调度,网络,存储层面的,基本上都是Pod级别的!官方是用这样的语言来描述的: A Pod is ...