博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1010(DFS) 骨头的诱惑
阅读量:5023 次
发布时间:2019-06-12

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

题目大意从S出发,问能否在时间t的时候到达终点D,X为障碍

需要注意的是要恰好在t时刻到达,而不是在t时间之内

深搜,注意剪枝 剩下格子大于t时间的时候剪掉这个很好想,但还是会超时,还有一个剪枝是依靠

奇偶性剪枝

比如地图依靠奇偶性是;

0 1 0 1 0 1

1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1 可以发现偶数走一步一定到奇数,奇数走一步一定到偶数,所以当所在地的奇偶性与目的地D不一样的时候
一定走奇数步子,一样就走偶数步,判断这个来剪枝

code

1 #include 
2 #include
3 bool flag; 4 int n,m,t,i,j,x1,y1,x2,y2,num; 5 int dix[]={
1,0,0,-1}; 6 int diy[]={
0,1,-1,0}; 7 char str[8][8]; 8 void DFS(int k,int l,int tc) 9 {10 int i;11 if(tc==t && k==x2 &&l==y2)12 flag=true;13 if(flag==true) return;14 if (abs(x2-k)+abs(y2-l)>t-tc)return ; //两个回溯15 if((abs(x2-k)+abs(y2-l))%2!=(t-tc)%2) return;16 for(i=0;i<4;i++)17 {18 int dx=k+dix[i];19 int dy=l+diy[i];20 if(dx>=0 && dx
=0 && dy
=t)60 DFS(x1,y1,0);61 if(flag==true)62 printf("YES\n");63 else64 printf("NO\n");65 }66 return 0;67 }

 

转载于:https://www.cnblogs.com/JJCHEHEDA/p/4706132.html

你可能感兴趣的文章
阿里架构师,讲述基于微服务的软件架构模式
查看>>
Eclipse导入maven项目时,Pom.xml文件报错处理方法
查看>>
01、JAVA开发准备
查看>>
asp.net mvc 错误处理 - 自定义报错处理,生成错误日志
查看>>
Linux centos ssh
查看>>
R语言之避免for循环示例
查看>>
[转]jQuery 选择器和dom操作
查看>>
Jenkins+Maven+SVN快速搭建持续集成环境(转)
查看>>
bootstrap 媒体查询
查看>>
杜教筛
查看>>
《Ext JS模板与组件基本知识框架图----模板》
查看>>
txmpp
查看>>
微信开发时调用jssdk,在安卓设备中成功调用;在ios设备中返回错误消息:config fail,无其他具体错误消息,且接口权限显示获取ok,无法调用...
查看>>
【Github教程】史上最全github使用方法:github入门到精通
查看>>
抽象工厂模式(Abstract Factory)
查看>>
luogu1373 小a和uim之大逃离 (dp)
查看>>
Redis的Pub/Sub客户端实现
查看>>
SQL日常问题和技巧——持续更新
查看>>
springMVC入门(一)------springMVC基本概念与安装
查看>>
Sam做题记录
查看>>