博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单回溯,最少步数
阅读量:5886 次
发布时间:2019-06-19

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

题目链接:

 

#include 
#include
#include
#define INF 0x3f3f3f3fusing namespace std;int MAPN[9][9]={ {
1,1,1,1,1,1,1,1,1}, {
1,0,0,1,0,0,1,0,1}, {
1,0,0,1,1,0,0,0,1}, {
1,0,1,0,1,1,0,1,1}, {
1,0,0,0,0,1,0,0,1}, {
1,1,0,1,0,1,0,0,1}, {
1,1,0,1,0,1,0,0,1}, {
1,1,0,1,0,0,0,0,1}, {
1,1,1,1,1,1,1,1,1},};int color[9][9];int mov[4][2]= {
{
1,0},{-1,0},{
0,1},{
0,-1}};int dfs(int sx,int sy,int x,int y){ int step=INF; if(sx==x&&sy==y) return 0; else { for(int k=0; k<4; k++) { int tx=sx+mov[k][0]; int ty=sy+mov[k][1]; if(tx>=0&&tx<=8&&ty>=0&&ty<=8) { if(!color[tx][ty]&&!MAPN[tx][ty]) { color[tx][ty]=1; step=min(step,dfs(tx,ty,x,y)+1); color[tx][ty]=0; } } } return step; }}int main(){ int sx,sy,x,y;///起始位置,目标位置。 int t; scanf("%d",&t); while(t--) { memset(color,0,sizeof(color)); scanf("%d%d%d%d",&sx,&sy,&x,&y); printf("%d\n",dfs(sx,sy,x,y)); } return 0;}

 

转载于:https://www.cnblogs.com/TreeDream/p/5316612.html

你可能感兴趣的文章
关于 error: LINK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案...
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
android app启动过程(转)
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
ABP理论学习之仓储
查看>>
我的友情链接
查看>>