HDOj 1010 DFS优化
#include<cstdio>
#include<cstring>
int sx[]={,,,-};
int sy[]={,,-,};
int g[][];
int x1,y1,x2,y2;
int step;
int n,m,t;
void dfs(int x,int y,int c_step)
{ if(x==x2&&y==y2&&c_step==t)
{ step=;return;
}
if((x>x2?x-x2:x2-x)+(y>y2?y-y2:y2-y)+c_step>t)//小剪
{
return;
}
int i;
for(i=;i<;i++)
{
int xx,yy;
xx=x+sx[i];
yy=y+sy[i];
if(xx>=&&xx<=n&&yy>=&&yy<=m&&g[xx][yy]==&&c_step+<=t)
{
g[xx][yy]=;
dfs(xx,yy,c_step+);
if(step==)//强力缩短时间
return;
g[xx][yy]=;
}
} }
int main()
{
int i,j,sum;
char c;
while(scanf("%d %d %d",&n,&m,&t)!=EOF)
{
if(!n&&!m&&!t)break;
step=;
sum=;
getchar();
for(i=;i<=n;i++)
{
for(j=;j<=m;j++)
{
c=getchar();
if(c=='S')
x1=i,y1=j;
else if(c=='D')
x2=i,y2=j,g[i][j]=;
else if(c=='X')
g[i][j]=;
else if(c=='.')
g[i][j]=,sum++;
}
getchar();
}
if(sum+<t||(t+x1+y1+x2+y2)%==)//奇偶性判别与可达性判别
printf("NO\n");
else
{
g[x1][y1]=;
dfs(x1,y1,);
if(step)
printf("YES\n");
else
printf("NO\n");
}
}
return ;
}
HDOj 1010 DFS优化的更多相关文章
- HDOJ.1010 Tempter of the Bone (DFS)
Tempter of the Bone [从零开始DFS(1)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tem ...
- hdoj 1010 Tempter of the Bone【dfs查找能否在规定步数时从起点到达终点】【奇偶剪枝】
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- HDU 1010 (DFS搜索+奇偶剪枝)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意:给定起点和终点,问刚好在t步时能否到达终点. 解题思路: 4个剪枝. ①dep&g ...
- hdu 1010(DFS) 骨头的诱惑
http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意从S出发,问能否在时间t的时候到达终点D,X为障碍 需要注意的是要恰好在t时刻到达,而不是在t时间 ...
- Tinkoff Challenge - Elimination Round B. Igor and his way to work(dfs+优化)
http://codeforces.com/contest/793/problem/B 题意:一个地图,有起点和终点还有障碍点,求从起点出发到达终点,经过的路径上转弯次数是否能不超过2. 思路: 直接 ...
- BZOJ3436: 小K的农场(差分约束裸题&DFS优化判环)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2111 Solved: 986[Submit][Status][Discus ...
- bzoj 1010 斜率优化DP
我的第二道斜率DP. 收获: 1.假设两个位置:p<q<i,然后让某一位置优,看其满足什么性质,所谓斜率优化就是满足: (g[q]-g[p])/(f[q]-f[p]) op h[i] 要 ...
- zoj 1008 暴力枚举求解dfs+优化
/* 现将相同的合并计数. 再枚举判断是否符合当cou==n*n是符合就退出 */ #include<stdio.h> #include<string.h> #define N ...
- NOIP2009靶形数独[DFS 优化]
描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z博士请教,Z 博士拿出了他最近发明的“靶形数独 ...
随机推荐
- JavaScript基础---语言基础(2)
运算符 1.一元运算符 2.算术运算符 3.关系运算符 4.逻辑运算符 5.*位运算符 6.赋值运算符 7.其他运算符 8.运算符优先级 ECMA-262描述了一组用于操作数据值的运算符,包括一元运算 ...
- 在eclipse中安装插件
1.在Eclipse中菜单help选项中选择install new software选项, 2.在work with 栏中输入 http://download.eclipse.org/releases ...
- .net架构设计读书笔记--第三章 第9节 域模型实现(ImplementingDomain Model)
我们长时间争论什么方案是实现域业务领域层架构的最佳方法.最后,我们用一个在线商店案例来说明,其中忽略了许多之前遇到的一些场景.在线商店对很多人来说更容易理解. 一.在线商店项目简介 1. 用例 ...
- sql-in/not in和exists/not exists的区别
In和Exists的区别 这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如I ...
- Go to the first line OR the last line of the file
(1) 跳到首行 :1 或 gg (2)跳到最后一行 :$ 或 G 或shift+g(大写.当前若大小写锁定直接按g,未锁定则按shift+g)
- 【FE前端学习】第二阶段任务-基础
技能学习部分: 1.需要熟练掌握HTML标签以及CSS各个常用属性. 2.掌握CSS3 常用属性 3.掌握jquery的基本用法,对于JS基本逻辑语句需要熟练掌握 上文 [FE前端学习]第二阶段任务- ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'db_item'
一直很奇怪,为什么报错,进入mysql命令行,show databases:发现多谢了一个空格,如上图.
- 【poj1962】 Corporative Network
http://poj.org/problem?id=1962 (题目链接) 时隔多年又一次写带权并查集. 题意 n个节点,若干次询问,I x y表示从x连一条边到y,权值为|x-y|%1000:E x ...
- Codevs1299 切水果
题目描述 Description 简单的说,一共N个水果排成一排,切M次,每次切[L,R]区间的所有水果(可能有的水果被重复切),每切完一次输出剩下水果数量 数据已重新装配,不会出现OLE错误 时限和 ...
- C/C++代码中的笔误
1. 在printf()的参数前加& (2015/10/7) 这是我写的一个数据生成器(generator)片段 +; printf("%d\n", &n);