HDOJ 1010
深度搜索,注意要剪枝
1.奇偶剪枝
#include <iostream>
#include <stdio.h>
using namespace std; char map[][];
int desc[][]={{-,},{,},{,},{,-}};
int si,sj,di,dj;
int n,m,t;
int escape; void dfs(int ni,int nj,int nt)
{
if(escape) return;
if(nt>t) return;
else if(nt==t)
{
if(ni==di && nj==dj)
{
printf("YES\n");
escape=;
}
return;
}
else
{
for(int k=;k<;++k)
{
if(ni+desc[k][]>-&&ni+desc[k][]<n && nj+desc[k][]>-&&nj+desc[k][]<m)
{
if(map[ni+desc[k][]][nj+desc[k][]]!='X')
{
map[ni][nj]='X';
//printf("goto (%d,%d) %d\n",ni+desc[k][0],nj+desc[k][1],nt+1);
dfs(ni+desc[k][],nj+desc[k][],nt+);
map[ni][nj]='.';
}
}
}
}
} int main()
{
int i,j,wall; while(scanf("%d %d %d",&n,&m,&t),n||m||t)
{
escape=;
di=;
dj=;
wall=;
getchar();
for(i=;i<n;++i)
{
for(j=;j<m;++j)
{
//scanf("%c",&map[i][j]);
cin>>map[i][j];
if(map[i][j]=='S')
{
si=i;
sj=j;
}
else if(map[i][j]=='D')
{
di=i;
dj=j;
}
else if(map[i][j]=='X') ++wall;
}
//getchar();
} //前半句是判断可以走的block数是否小于等于时间;
//后半句是奇偶剪枝
if(n*m-wall<=t || ((di-si+dj-sj)&)!=(t&))
{
printf("NO\n");
continue;
}
dfs(si,sj,);
if(escape==) printf("NO\n");
}
}
HDOJ 1010的更多相关文章
- hdoj--1010<dfs+奇偶剪枝>
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目描述:在n*m的矩阵中,有一起点和终点,中间有墙,给出起点终点和墙,并给出步数,在该步数情况 ...
- HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意: 输入 n m t,生成 n*m 矩阵,矩阵元素由 ‘.’ 'S' 'D' 'X' 四 ...
- hdu.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:Tempter of the Bone(DFS + 奇偶剪枝)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- 杭电1010(dfs + 奇偶剪枝)
题目: The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked ...
- HDU 1010:Tempter of the Bone(DFS+奇偶剪枝+回溯)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- hdu1010Tempter of the Bone(dfs+奇偶剪枝)
题目链接:pid=1010">点击打开链接 题目描写叙述:给定一个迷宫,给一个起点和一个终点.问是否能恰好经过T步到达终点?每一个格子不能反复走 解题思路:dfs+剪枝 剪枝1:奇偶剪 ...
- Tempter of the Bone(dfs奇偶剪枝)
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Tempter of the Bone(dfs+奇偶剪枝)题解
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- M - Tempter of the Bone(DFS,奇偶剪枝)
M - Tempter of the Bone Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
随机推荐
- BeautifulSoup在Windows下安装(running 2to3)
在windows下安装beautifulsoup经常会出现说是在python3下无法运行Python2的代码,这时需要将Python下的tool下的scripts目录添加到环境变量中,然后运行2to3 ...
- AS 进行单元测试
以下为本人在AndroidStudio 2.0 上实测后得出的结论,不像网上那一堆堆的误人子弟的文章,都是过时的或者根本就是不对的. 简介 和eclipse需要配置清单文件不同,AndroidStud ...
- 【开源java游戏框架libgdx专题】-07-文件处理
介绍:文件处理在不同平台的文件管理是略有差异的 Desktop(Windows,Linux,Mac OS X等等):在桌面系统中,文件系统是一个大块的内存.文件可以通过当前的工作目录或者绝对路径被引用 ...
- JS的replace()的应用
替换字符串中的空格 /\s/ig 例如: var pro="ssss ssss sss ddd ss" var protext = pro.replace(/\s/ig,&qu ...
- 2015 Multi-University Training Contest 2
附上第二场比赛的链接 从5300-5309 我是链接 顺便贴出官方题解:
- CentOS6.6x86_64 部署 Nginx1.62+MySQL5.6.20+PHP5.6.4
准备工作 切换到管理员身份 su - 安装编译扩展 yum install -y gcc-c++ 创建数据库目录.代码目录 mkdir /mnt/data /mnt/www 安装Nginx 1.6.2 ...
- myeclipse跟eclipse中使用github做版本控制工具
今天早上花了一上午的时间,了解了在myeclipse跟eclipse中使用github. 好吧 说说怎么做的,让大伙少走一点路,我就简单描述下,需要软件的私信我 第一:下载git 第二:靠谱.但是pu ...
- 千万数量级分页存储过程 +AspNetPager现实分页
存储过程 USE [ForeignTradeDB] GO /****** Object: StoredProcedure [dbo].[CommonGetDataPager] Script Date: ...
- C# DateTime.Now
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...
- 关于Core Data的一些整理(一)
关于Core Data的一些整理(一) 在Xcode7.2中只有Mast-Debug和Single View中可以勾选Use Core Data 如果勾选了Use Core Data,Xcode会自动 ...