题目大意:

  有一个地图,有障碍,不能重复经过一点(但起点可以),判断能否恰好在t时刻从起点到达终点。

思路:

  一开始DFS一遍,30分,于是要有优化减枝。最重要的是从起点到终点的距离的奇偶性是与起点与终点的曼哈顿距离的奇偶性一样(因为远离“最短路”后必将回来,所以会加一个偶数,奇偶性不变)当然还有其他,如最短距离+当前时间>要求时间则减去、搜索方向为先左上再右下。

代码:

  1. #include<cstdio>
  2. const int dx[]={-,,,},dy[]={,-,,};
  3. int n,m,t,i,j,b,e,a[][];
  4. char s[];
  5.  
  6. int abs(int x) { return x>?x:-x; }
  7.  
  8. bool dfs(int x,int y,int k)
  9. {
  10. if (k==t)
  11. {
  12. if (x==b && y==e) return ;
  13. return ;
  14. }
  15. if (abs(x-b)+abs(y-e)+k>t) return ;
  16. for (int i=,p,q;i<;++i)
  17. if (a[p=x+dx[i]][q=y+dy[i]])
  18. {
  19. a[p][q]=;
  20. if (dfs(p,q,k+)) return ;
  21. a[p][q]=;
  22. }
  23. return ;
  24. }
  25.  
  26. int main()
  27. {
  28. for (scanf("%d%d%d",&n,&m,&t);n && m && t;scanf("%d%d%d",&n,&m,&t))
  29. {
  30. for (i=;i<n+;++i)
  31. for (j=;j<m+;++j) a[i][j]=;
  32. for (i=;i<=n;++i)
  33. {
  34. scanf("%s",s+);
  35. for (j=;j<=m;++j)
  36. if (s[j]!='H')
  37. {
  38. if (s[j]=='D') b=i,e=j;
  39. a[i][j]=;
  40. }
  41. }
  42. if ((((b+e)&)==(t&)) && dfs(,,)) printf("Yes\n");
  43. else printf("No\n");
  44. }
  45. return ;
  46. }

[VijosP1656]萌萌赶考 题解的更多相关文章

  1. uoj #118. 【UR #8】赴京赶考 水题

    #118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description ...

  2. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  3. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  4. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  5. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  6. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  7. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  9. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

随机推荐

  1. LUA中将未分类数据分为测试集和训练集

    require 'torch' require 'image' local setting = {parent_root = '/home/pxu/image'} function list_chil ...

  2. BZOJ2292——【POJ Challenge 】永远挑战

    1.题意:dijkstra模板题,存点模板 #include <queue> #include <cstdio> #include <cstdlib> #inclu ...

  3. [BZOJ1552][Cerc2007]robotic sort

    [BZOJ1552][Cerc2007]robotic sort 试题描述 输入 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000.第二行为N个用空格隔开的正整数 ...

  4. BMP图像差分/比较

    #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char ...

  5. MySql: 常见sql语句

    1. show create table mysql> show create table t \G*************************** 1. row ************ ...

  6. php实验5数组

    1.自定义两个数组,分别为索引数组和关联数组,每个数组必须至少有4个元素,使用print_r( )函数输出数组元素. 2.编写一个随机抽奖程序,示例运行结果如下: 3.定义一个三维数组$categor ...

  7. iOS block

    主要内容: block基本声明格式 block访问区域变量 block代替代理 block基本声明格式: ^(传入的参数){具体代码}; 注: Block实体开头是"^",接着是由 ...

  8. 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  9. sublime text3 前端插件介绍

    Emmet插件 Emmet插件可以说是使用Sublime Text进行前端开发必不可少的插件 它让编写HTML代码变得极其简单高效 基本用法:输入标签简写形式,然后按Tab键 关于Emmet的更多介绍 ...

  10. swift之inout

    在swift中,我们常常对数据进行一些处理.因为swift的计算属性,所以如果不是大量重复性处理,基本可以在set及didSet中改变原数据的一些状态.但需要用到同样的算法处理大量数据的时候,仍然需要 ...