给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置

她在行走过程中,不能转太多弯了,否则她会晕倒的。

(每次在一个方向上一直走到底,并push纪录,然后再一个个吐)

每次对一个方向搜到底,转弯时记录一下,若一个点已经超出要求,则跳过。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cstring>
  4. #include<iostream>
  5. #include<queue>
  6. using namespace std;
  7.  
  8. struct node
  9. {
  10. int x,y;
  11. int t;
  12. };
  13. char p[205][205];
  14. int n,m;
  15. int x1,x2,y1,y2,kk;
  16. int vis[205][205];
  17. int dir[][2] = {{-1,0},{0,1},{1,0},{0,-1}};
  18. bool judge(int x ,int y)
  19. {
  20. if(x < 0 || x >= n ||y <0 ||y >= m)
  21. return false;
  22. if(p[x][y] == '*')
  23. return false;
  24. return true;
  25. }
  26.  
  27. bool solve()
  28. {
  29. queue<node>que;
  30. node cur,q,k;
  31. cur.x = x1;
  32. cur.y = y1;
  33. cur.t = -1;
  34. vis[x1][y1] = 1;
  35. que.push(cur);
  36. while(!que.empty())
  37. {
  38. k =que.front();
  39. que.pop();
  40. if(k.t >= kk)
  41. continue;
  42. for(int i = 0; i < 4; i++)
  43. {
  44. q.x = k.x + dir[i][0];
  45. q.y = k.y + dir[i][1];
  46. q.t = k.t+1;
  47. while(1)
  48. {
  49. if(!judge(q.x,q.y))
  50. break;
  51. if(q.x==x2 && q.y==y2)
  52. return true;
  53. if(!vis[q.x][q.y])
  54. {
  55. que.push(q);
  56. vis[q.x][q.y]=1;
  57. }
  58. q.x+=dir[i][0];
  59. q.y+=dir[i][1];
  60. }
  61.  
  62. }
  63. }
  64. return false;
  65. }
  66.  
  67. int main()
  68. {
  69. int T;
  70. scanf("%d",&T);
  71. while(T--)
  72. {
  73. scanf("%d%d",&n,&m);
  74. memset(vis,0,sizeof(vis));
  75. for(int i = 0; i < n; i++)
  76. scanf("%s",p[i]);
  77. scanf("%d%d%d%d%d",&kk,&y1,&x1,&y2,&x2);
  78. y1--,x1--,y2--,x2--;
  79. bool whe = solve();
  80. if(whe)
  81. printf("yes\n");
  82. else
  83. printf("no\n");
  84. }
  85. return 0;
  86. }

  

HDU 1729的更多相关文章

  1. HDU 1729 类NIM 求SG

    每次有n个盒子,每个盒子有容量上限,每次操作可以放入石头,数量为不超过当前盒子中数量的平方,不能操作者输. 一个盒子算一个子游戏. 对于一个盒子其容量为s,当前石子数为x,那么如果有a满足 $a \t ...

  2. hdu 1729 Stone Game

    Stone Game HDU - 1729 题意: 给定n个箱子,每个箱子的容量为si,每个箱子里最初有ci个石子,每次放入石子不能超过放入前的石子数的平方,谁无法继续放入石子就算输.   /* 这是 ...

  3. Hdu 1729 Nim博弈

    点击打开题目链接 之前没做过这题,因为学弟问到我如果来求该题的sg值,才做了这题. 首先, 是多堆Nim博弈毫无疑问,这题是往一个有固定容量的箱子里放石子,和从一堆石子里面拿出石子是一个道理. 和传统 ...

  4. HDU 1729 Stone Game【SG函数】

    以下转载至:长春理工大学赵小舟博弈论ppt 题目大意: 1.有n个盒子,每个盒子都有它的容量s 2.在游戏开始时,每个盒子里都有一些石子 3.双方轮流进行游戏,向一个盒子投入n个石子,其中n不能大于当 ...

  5. hdu 1729 Stone Game 博弈论

    那么对于这题对于每一堆,放石子放满就想当于满的时候取s-c个,反向只是让我理解题意更深. 首先我们知道(S,S)这个局面是必败局面.对于每一堆能加的数量有限,而当c的值(大于或者等于) D=sqrt( ...

  6. HDU 1729 Stone Game 石头游戏 (Nim, sg函数)

    题意: 有n个盒子,每个盒子可以放一定量的石头,盒子中可能已经有了部分石头.假设石头无限,每次可以往任意一个盒子中放石头,可以加的数量不得超过该盒中已有石头数量的平方k^2,即至少放1个,至多放k^2 ...

  7. 2019的hdu暑假作业(欢迎纠错)

    1219 遍历计数. #include<bits/stdc++.h> #define QAQ 0 using namespace std; ]; ]; int main(){ )){ me ...

  8. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  9. hdoj 1729 Stone Games(SG函数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1729 看了题目感觉像Nim,但是有范围限制,有点不知道SG函数该怎么写 看了题解,最后才明白该怎么去理 ...

随机推荐

  1. 2017-2018-1 1623 bug终结者 冲刺004

    bug终结者 冲刺004 by 20162322 朱娅霖 整体连接 简要说明 目前,我们已经完成了欢迎界面,主菜单界面,排行榜界面,选项界面,胜利界面,地板类.小人类.墙体类.箱子类和虚拟按键类. 主 ...

  2. 项目Beta冲刺Day7

    项目进展 李明皇 今天解决的进度 部分数据传递和使用逻辑测试 林翔 今天解决的进度 服务器端查看个人发布的action,修改已发布消息状态的action,仍在尝试使用第三方云存储功能保存图片 孙敏铭 ...

  3. scrapy csvfeed spider

    class CsvspiderSpider(CSVFeedSpider): name = 'csvspider' allowed_domains = ['iqianyue.com'] start_ur ...

  4. Scala 快速入门

     Scalable 编程语言 纯正的的面向对象语言 函数式编程语言 无缝的java互操作 scala之父 Martin Odersky 1. 函数式编程 函数式编程(functional progr ...

  5. nyoj 寻找最大数

    寻找最大数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大, 比如当n=920813467185 ...

  6. salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值

    注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-fr ...

  7. Python内置函数(13)——bytearray

    英文文档: class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray cla ...

  8. Mosquito集群模式

    参考链接: http://blog.csdn.net/z729685731/article/details/70142182 http://blog.csdn.net/yuhaiyang457288/ ...

  9. 关于HTML

    我的PHP学习之旅 学习PHP已经有一段时间了,今天才想好好的总结一下这一路走来的点点滴滴,也想把我的学习方法及经验分享给大家,希望能对你有所帮助. 首先学习的是PHP前端部分,这里需要学习的知识有H ...

  10. TensorFlow-Slim使用方法说明

    翻译自:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim TensorFlow-Slim TF- ...