[VijosP1656]萌萌赶考 题解
题目大意:
有一个地图,有障碍,不能重复经过一点(但起点可以),判断能否恰好在t时刻从起点到达终点。
思路:
一开始DFS一遍,30分,于是要有优化减枝。最重要的是从起点到终点的距离的奇偶性是与起点与终点的曼哈顿距离的奇偶性一样(因为远离“最短路”后必将回来,所以会加一个偶数,奇偶性不变)当然还有其他,如最短距离+当前时间>要求时间则减去、搜索方向为先左上再右下。
代码:
#include<cstdio>
const int dx[]={-,,,},dy[]={,-,,};
int n,m,t,i,j,b,e,a[][];
char s[]; int abs(int x) { return x>?x:-x; } bool dfs(int x,int y,int k)
{
if (k==t)
{
if (x==b && y==e) return ;
return ;
}
if (abs(x-b)+abs(y-e)+k>t) return ;
for (int i=,p,q;i<;++i)
if (a[p=x+dx[i]][q=y+dy[i]])
{
a[p][q]=;
if (dfs(p,q,k+)) return ;
a[p][q]=;
}
return ;
} int main()
{
for (scanf("%d%d%d",&n,&m,&t);n && m && t;scanf("%d%d%d",&n,&m,&t))
{
for (i=;i<n+;++i)
for (j=;j<m+;++j) a[i][j]=;
for (i=;i<=n;++i)
{
scanf("%s",s+);
for (j=;j<=m;++j)
if (s[j]!='H')
{
if (s[j]=='D') b=i,e=j;
a[i][j]=;
}
}
if ((((b+e)&)==(t&)) && dfs(,,)) printf("Yes\n");
else printf("No\n");
}
return ;
}
[VijosP1656]萌萌赶考 题解的更多相关文章
- uoj #118. 【UR #8】赴京赶考 水题
#118. [UR #8]赴京赶考 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/118 Description ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
随机推荐
- 创建table并实现ID自增长
① create table p_user( id number(10) not null primary key, name varchar2(3 ...
- C/C++: C++变量和基本类型
1. 如何选择类型的准则 当明确知晓数值不可能为负的时候,应该选择无符号类型. 使用int执行整数运算的时候,在实际应用中,short常常显得太小而long一般和int有一样的尺寸,如果数值超过了in ...
- resharper 改为VS自带的F12功能(转到定义)
1:如何设置vs默认的快捷键方式: 2:重新设置resharper的F12及其其它选项设置: 3.如果还需要使用快捷键 Alt+ENTER 1.帮你实现某个接口或抽象基类的方法 2.提供你处理当 ...
- ExtJS基础知识总结:常用控件使用方式(一)
概述 最近一直在做相关ExtJs方面的项目,遇到了ExtJs使用方面的一系列问题,现在将使用技巧做个记录汇总,以便于下次能够快速使用.以下都是ExtJs控件的常用方法,做简单汇总,俗话说,好记星不如烂 ...
- PPT演示快捷键
序号 快捷键作用 快捷键 1 从头开始放映 Ctrl+F5 2 从当前页开始放映 Shift+F5 3 隐藏/显示鼠标指针 Ctrl+H/U 4 标记笔 Ctrl+P 5 荧光笔 ...
- AOJ 0118 Property Distribution【DFS】
题意:在H * W的矩形果园里有苹果.梨.蜜柑三种果树, 相邻(上下左右)的同种果树属于同一个区域,给出果园的果树分布,求总共有多少个区域. 输入:多组数据,每组数据第一行为两个整数H,W(H < ...
- windows 物理内存获取
由于我一般使用的虚拟内存, 有时我们需要获取到物理内存中的数据(也就是内存条中的真实数据), 按理说是很简单,打开物理内存,读取就可以了.但似乎没这么简单: #include "window ...
- 使用Spring发送带附件的电子邮件(站内和站外传送)
JavaMail的介绍 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输. 虽然JavaMail是 ...
- linux高级编程补充知识
F: 计算机系统结构: ------------------------------- 应用程序 ----------------- | 库函数 -------------------------- ...
- OX中修改文件名
右击文件,显示简介,名称与扩展名