简单BFS。

  1. /* 2579 */
  2. #include <iostream>
  3. #include <queue>
  4. #include <cstdio>
  5. #include <cstring>
  6. #include <cstdlib>
  7. using namespace std;
  8.  
  9. #define MAXN 105
  10.  
  11. typedef struct node_t {
  12. int x, y, t;
  13. node_t() {}
  14. node_t(int xx, int yy, int tt) {
  15. x = xx; y = yy; t = tt;
  16. }
  17. } node_t;
  18.  
  19. int n, m, b;
  20. bool visit[MAXN][MAXN][];
  21. char map[MAXN][MAXN];
  22. node_t beg;
  23. int dir[][] = {
  24. -,,,,,-,,
  25. };
  26.  
  27. inline bool check(int x, int y) {
  28. return x< || x>=n || y< || y>=m;
  29. }
  30.  
  31. int bfs() {
  32. int i, j, k;
  33. int x, y, t;
  34. node_t nd;
  35. queue<node_t> Q;
  36.  
  37. memset(visit, false, sizeof(visit));
  38. visit[beg.x][beg.y][] = true;
  39. Q.push(beg);
  40.  
  41. while (!Q.empty()) {
  42. nd = Q.front();
  43. Q.pop();
  44. t = nd.t + ;
  45. k = t%b;
  46. for (i=; i<; ++i) {
  47. x = nd.x + dir[i][];
  48. y = nd.y + dir[i][];
  49. if (check(x,y) || visit[x][y][k])
  50. continue;
  51. if (k && map[x][y]=='#')
  52. continue;
  53. if (map[x][y] == 'G')
  54. return t;
  55. visit[x][y][k] = true;
  56. Q.push(node_t(x, y, t));
  57. }
  58. }
  59.  
  60. return -;
  61. }
  62.  
  63. int main() {
  64. int t;
  65. int i, j, k;
  66.  
  67. #ifndef ONLINE_JUDGE
  68. freopen("data.in", "r", stdin);
  69. freopen("data.out", "w", stdout);
  70. #endif
  71.  
  72. beg.t = ;
  73. scanf("%d", &t);
  74. while (t--) {
  75. scanf("%d %d %d", &n,&m,&b);
  76. for (i=; i<n; ++i) {
  77. scanf("%s", map[i]);
  78. for (j=; j<m; ++j) {
  79. if (map[i][j] == 'Y') {
  80. beg.x = i;
  81. beg.y = j;
  82. }
  83. }
  84. }
  85. k = bfs();
  86. if (k < )
  87. puts("Please give me another chance!");
  88. else
  89. printf("%d\n", k);
  90. }
  91.  
  92. return ;
  93. }

【HDOJ】2579 Dating with girls(2)的更多相关文章

  1. hdu 2579 Dating with girls(2)

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2579 Dating with girls(2) Description If you have sol ...

  2. hdoj 2579 Dating with girls(2)【三重数组标记去重】

    Dating with girls(2) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. hdu 2579 Dating with girls(2) (bfs)

    Dating with girls(2) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  4. 【HDOJ】1068 Girls and Boys

    匈牙利算法,最开始暴力解不知道为什么就是wa,后来明白,一定要求最优解.查了一下匈牙利算法相关内容,大致了解. #include <stdio.h> #include <string ...

  5. 【HDOJ】4729 An Easy Problem for Elfness

    其实是求树上的路径间的数据第K大的题目.果断主席树 + LCA.初始流量是这条路径上的最小值.若a<=b,显然直接为s->t建立pipe可以使流量最优:否则,对[0, 10**4]二分得到 ...

  6. 【HDOJ】【3506】Monkey Party

    DP/四边形不等式 裸题环形石子合并…… 拆环为链即可 //HDOJ 3506 #include<cmath> #include<vector> #include<cst ...

  7. 【HDOJ】【3516】Tree Construction

    DP/四边形不等式 这题跟石子合并有点像…… dp[i][j]为将第 i 个点开始的 j 个点合并的最小代价. 易知有 dp[i][j]=min{dp[i][j] , dp[i][k-i+1]+dp[ ...

  8. 【HDOJ】【3480】Division

    DP/四边形不等式 要求将一个可重集S分成M个子集,求子集的极差的平方和最小是多少…… 首先我们先将这N个数排序,容易想到每个自己都对应着这个有序数组中的一段……而不会是互相穿插着= =因为交换一下明 ...

  9. 【HDOJ】【2829】Lawrence

    DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...

随机推荐

  1. Java基础知识强化之集合框架笔记32:集合之可变参数的概述和使用

    1. 可变参数的概述和使用: (1)可变参数:定义方法的时候不知道该定义多少个参数(2)格式:     修饰符  返回值类型  方法名(数据类型… 变量名){   }  注意: 这里的变量其实是一个数 ...

  2. 怎样写好一份IT技术岗位的简历

    10月是校园招聘的旺季,很多应届毕业生都忙碌起来了,从CSDN笔试-面试文章的火热程度,从我收到的简历就看得出来. 我很久没有参与笔试和面试了,所以只能从“简历”来阐述下我的看法. 截至目前,已经帮8 ...

  3. 第二篇:python高级之装饰器

    python高级之装饰器   python高级之装饰器 本节内容 高阶函数 嵌套函数及闭包 装饰器 装饰器带参数 装饰器的嵌套 functools.wraps模块 递归函数被装饰 1.高阶函数 高阶函 ...

  4. Navicat Premium 自动备份mysql和sqlserver

    mysql篇: 1.点击计划 2.点击新建处理作业 3.选择需要备份的数据库,上级可用任务 4.点击保存按钮,输入保存文件名 5.保存后点击设置计划任务 6.计划里新建保存时间,应用后输入系统密码即可 ...

  5. RPM工具

    一.RMP工具管理RPM包 rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐 ...

  6. Less 关于css hack的写法

    由于工作需要,最近一直在弄css转写less,遇到最多的问题就是 hack的写法,一些IE的hack,less不支持编译: 常见的不支持的hack如下: IE的滤镜写法 \9\0    IE8部分支持 ...

  7. oracle服务器端-登陆

    由于的的操作系统是windows server版本,所以想装服务器端的server版本,一般的oracle都有'scott'用户,但是貌似服务器端的没有该用户,我用以下方式登陆: sqlplus / ...

  8. Tensor神经网络进行知识库推理

    本文是我关于论文<Reasoning With Neural Tensor Networks for Knowledge Base Completion>的学习笔记. 一.算法简介 网络的 ...

  9. Core Animation系列之CADisplayLink(转)

    转自 http://www.tuicool.com/articles/meMVR3 一直以来都想好好学习下CoreAnimation,奈何涉及的东西太多,想要一次性全部搞定时间上不允许,以后会断断续续 ...

  10. iOS NSData简单解析

    iOS 基本数据类型之NSData 1 nsdata 作用: 用于存储二进制的数据类型 nadat类提供一种简单的方式,它用来设置缓存区.将文件的内容读入到缓存区.或者将缓存区中的内容写到一个文件. ...