博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1010 Tempter of the Bone
阅读量:6368 次
发布时间:2019-06-23

本文共 1468 字,大约阅读时间需要 4 分钟。

dfs+剪枝

题意是说一仅仅狗要逃出迷宫,可是必须在某个时间点刚好到出口。

開始裸了一个dfs,TLE。。

。剪枝没有啥思路。本来想用bfs先判是否能到达,感觉不靠谱。

然后看Discuss,了解了一个奇偶性剪枝。

0 1 0 1 0 1 0 1 0   1 0 1 0 1 0 1 0 1   0 1 0 1 0 1 0 1 0   1 0 1 0 1 0 1 0 1   0 1 0 1 0 1 0 1 0   1 0 1 0 1 0 1 0 1

0->1 和 1->0 都是奇数

0->0 和 1->1 都是偶数。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffffff#define eps 1e-8#define LL long long#define PI 3.141592654#define CLR(a,b) memset(a,b,sizeof(a))#define FOR(i,a,n) for(int i= a;i< n ;i++)#define debug puts("==fuck==")#define acfun std::ios::sync_with_stdio(false)#define SIZE 1000+10using namespace std;int xx[]={0,0,-1,1};int yy[]={-1,1,0,0};int n,m,T;char g[10][10];int endx,endy;bool vis[10][10];bool flag;void dfs(int x,int y,int t){ if(flag)return; int tmp=(T-t)-abs(endx-x)-abs(endy-y); if(tmp<0||tmp&1)return; if(g[x][y]=='D'&&t==T) flag=1; else { FOR(k,0,4) { int i=x+xx[k]; int j=y+yy[k]; if(i<0||j<0||i>=n||j>=m||g[i][j]=='X'||vis[i][j]) continue; vis[i][j]=1; dfs(i,j,t+1); vis[i][j]=0; } }}int main(){ //freopen("test","w",stdout); while(~scanf("%d%d%d",&n,&m,&T)) { if(!n&&!m&&!T)return 0; char str[11]; int x=0,y=0; FOR(i,0,n) { scanf("%s",str); FOR(j,0,m) { g[i][j]=str[j]; if(g[i][j]=='S') x=i,y=j; else if(g[i][j]=='D') endx=i,endy=j; } } CLR(vis,0); flag=0; vis[x][y]=1; dfs(x,y,0); if(flag)puts("YES"); else puts("NO"); }}

转载地址:http://mwrma.baihongyu.com/

你可能感兴趣的文章
localStorage应用(写的时间缓存在本地浏览器)
查看>>
Javascript编码规范
查看>>
laravel-admin 使用记录(2) - 快速搭建 CURD
查看>>
自定义SpringBoot项目的Maven原型
查看>>
solidity不支持动态扩容
查看>>
5.java String对象
查看>>
基于 less,sass,stylus三种预处理rem
查看>>
微信棋牌游戏域名防封最新解决方案
查看>>
第十八天-企业应用架构模式-基本模式
查看>>
Promise加载图片用法详解
查看>>
《CSS设计指南》读书笔记
查看>>
win10初始化mysql5.7.24
查看>>
Windows 下安装 SCWS
查看>>
每日两道前端面试题
查看>>
什么是产品Backlog修饰 (Backlog Grooming)?
查看>>
Java反射的基本使用
查看>>
破坏程序员生产力的 12 件事
查看>>
什么是SOLID原则(第1部分)
查看>>
动态规划 python 挖矿问题
查看>>
Angular material中自定义分页信息
查看>>