袋鼠妈妈找不到她的孩子了。她的孩子被怪兽抓走了。袋鼠妈妈现在在地图的左上角,她的孩子在地图第 x 行第 y 列的位置。怪兽想和袋鼠妈妈玩一个游戏:他不想让袋鼠妈妈过快地找到她的孩子。袋鼠妈妈每秒钟可以向上下左右四个方向跳一格(如果没有墙阻拦的话),怪兽就要在一些格子中造墙,从而完成一个迷宫,使得袋鼠妈妈能够找到她的孩子,但最快不能小于 k 秒。请设计这样一个迷宫。

Input

第一行两个整数 n,m (1≤n,m≤8),表示地图的总行数和总列数。第二行三个整数 x,y,k (1≤x≤n,1≤y≤m,x+y>1)。

Output

输出一个地图,应正好 n 行 m 列。用 . 表示空地,用 * 表示墙。袋鼠妈妈所在的位置和孩子所在的位置用 . 表示。数据保证有解。

【分析】dfs,每次往下深搜,只要找到一条路径就行,这题特判,有一个解就行,因为告诉了起始点和终止点,所以只用找到路径就行,这里有一个想法就是,一个点的来源,或者说是去向不能超过两个,因为一旦超过两个,说明会有点取代这个点进行连通,此时最短路径已经改变,最优解得不到保证,所以每次深搜之前必须保证这个的来源去向不超过两个,所以超过两个的点我们就不选取。

【代码】

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
bool mat[15][15];//用来存储地图
int n,m;//表示地图的长和宽
int x,y,k;//题目保证了有解,所以只要求出长于k的路径就行
int changex[4]= {0,0,1,-1};//四个方向
int changey[4]= {1,-1,0,0};
bool pri=false;//是否有输出,因为题目只要求了一个解,所以一旦有输出就没必要继续下去了
bool inmat(int xx,int yy)
{//判断一个点是否在图内if(xx<0||xx>=n||yy<0||yy>=m) return false;return true;
}
void dfs(int now_x,int now_y,int step)//当前节点以及到当前节点的步数
{int dic=0;//表示和当前节点相连的点有几个for(int i=0; i<4; i++)if(inmat(now_x+changex[i],now_y+changey[i]))dic+=mat[now_x+changex[i]][now_y+changey[i]];if(dic>=2)//有两个方向了,所以这里不用再增加方向了,否则反而会减少最短距离return ;if(now_x==x&&now_y==y)//如果搜索到了终点{if(step>=k)//步数是否符合要求{for(int i=0; i<n; i++){for(int j=0; j<m; j++)printf("%c",mat[i][j]?'.':'*');printf("\n");}pri=true;//有输出了,此时跳出所有的深搜}return ;}if(pri) return ;for(int i=0; i<4; i++)if(!mat[now_x+changex[i]][now_y+changey[i]]&&inmat(now_x+changex[i],now_y+changey[i]))//这个点没有搜索过并且在地图中{if(pri) return ;mat[now_x+changex[i]][now_y+changey[i]]=true;dfs(now_x+changex[i],now_y+changey[i],step+1);//继续往下深搜mat[now_x+changex[i]][now_y+changey[i]]=false;}
}
int main()
{scanf("%d%d%d%d%d",&n,&m,&x,&y,&k);x--;y--;//让地图从(0,0)开始memset(mat,false,sizeof(mat));mat[0][0]=true;dfs(0,0,0);return 0;
}

ecnu 3260 袋鼠妈妈找孩子相关推荐

  1. EOJ 3260:袋鼠妈妈找孩子

    袋鼠妈妈找孩子 Time limit per test: 1.5 seconds Time limit all tests: 10.0 seconds Memory limit: 256 megaby ...

  2. 大学生程序设计邀请赛(华东师范大学)C:袋鼠妈妈找孩子

    袋鼠妈妈找孩子 Time limit per test: 1.5 seconds Time limit all tests: 10.0 seconds Memory limit: 256 megaby ...

  3. BFS——小妈妈找蝌蚪

    BFS--小妈妈找蝌蚪 题目描述 青蛙妈妈最近很不放心把蝌蚪宝宝送到幼儿园,但当她买菜回家时,却发现可爱的孩子小蝌蚪走丢了. 小池塘里有很多石头,青蛙家在其中标号为s的石头上.小蝌蚪会移动k分钟,每分 ...

  4. 浙江工业大学大学生程序设计迎新赛预赛( F,小妈妈找蝌蚪 L ,取数游戏 M,小杰的签到题)

    F,妈妈找小蝌蚪 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 青蛙妈妈最近很不放心把蝌 ...

  5. 安全精简添加,让肌肤喝饱水,袋鼠妈妈打消孕期护肤疑虑

    很多孕妈妈为了胎儿安全着想,对日常的护肤品化妆品也会谨小慎微,生怕自己一点疏忽会影响宝宝,甚至有些孕妈妈会在网上找用各种植物.蔬菜偏方进行护肤美容,而这反而会影响正常的肌肤健康. 其实,护肤品要渗透到 ...

  6. 袋鼠妈妈和植物主义哪个适合孕妇用?主要看这几点

    以前总期待着有一天,自己能暂别工作,去快乐地享受数月产假.直到这一天真正来临,才知道当孕妈有多辛苦. 这个不能吃,那个不能碰,连很多平时用的护肤品.日常用品都得换.于是,咱得每天去研究吃什么,补什么, ...

  7. Python每日一练-----妈妈找小蝌蚪(哈希算法)

    题目: 给定一个池塘里面有众多小蝌蚪(整数数组 nums) 他们已经排队好了,有一位青蛙妈妈(一个整数目标值 mom),请你帮助青蛙妈妈找到他的亲生孩子所在的位置(数组序号)(青蛙:生的时候我也没想过 ...

  8. Python每日一练-----妈妈找小蝌蚪(进阶版),指针的灵活运用

    题目: 给定一个池塘里面有众多小蝌蚪(整数数组 nums) 他们已经排队好了,有一位青蛙妈妈(一个目标值 :0),请你帮助青蛙妈妈找到他的亲生孩子(青蛙:生的时候我也没想过要找啊),假设青蛙妈妈身上带 ...

  9. 简单好听的id_一位妈妈给孩子的10大家规,简单实用,值得所有父母借鉴!

    掘金首页动态话题小册活动搜索掘金搜索写文章登录注册_Hahn_2019年01月08日阅读 566<蜘蛛侠:平行宇宙>的视觉解析与滤镜实现早在四年前,索尼想要制作全新风格的"蜘蛛侠 ...

最新文章

  1. vs2013编译 protoBuffer编译出现的问题
  2. Matlab 图像处理相关函数命令
  3. C/C++杂记:虚函数的实现的基本原理 虚函数表
  4. centos7 如何安装部署k8s_五步教你如何使用k8s快速部署ES
  5. mt7628 pcie挂载nvme并测试
  6. oracle之高级子查询2
  7. poj 2976 Dropping tests 01分数规划
  8. 访问Cache和主存的效率计算问题
  9. Java数据库编程---JDBC操作步骤及数据库连接操作
  10. Android 工具:TraceView
  11. 国家标准《信息安全技术 关键信息基础设施网络安全保护基本要求》试点启动
  12. ns3网络设置模块 PointToPoint
  13. 迪斯尼计算机动画,迪斯尼经典动画的十大运动规律
  14. 类图、用例图、时序图、状态图、活动图、流程图、顺序图(转)
  15. 2021全球十大外盘期货交易平台排名
  16. 英语六级写作必备短语词汇1
  17. 【交互设计】如何设计“取消”按钮
  18. Win11最新版ISO镜像+下载方法
  19. PHP家长互助沙龙流程,家长沙龙活动方案
  20. Dimension finie有限元-ECPKn

热门文章

  1. Frozen软件介绍
  2. 自定义View 实现左右拖动脉象图
  3. python 当前路径 搜索路径图某一个不包含_python编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径...
  4. android分享助手下载地址,语音导出分享助手
  5. PyTorch笔记 - A ConvNet for the 2020s (ConvNeXt) 网络
  6. if(a>b>c)的一个c语言易错题
  7. 使用oracle 游标修改数据,修改oracle数据库游标
  8. 光纤传感器类有哪些最新发表的毕业论文呢?
  9. css3 太极动画,纯css实现太极阴阳鱼动画
  10. java web网上书店_java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇...