2017年华东师范大学网络赛 C
来源:互联网 发布:linux snmp 监控软件 编辑:程序博客网 时间:2024/04/30 07:18
袋鼠妈妈找孩子
Time limit per test: 1.5 seconds
Time limit all tests: 10.0 seconds
Memory limit: 256 megabytes
袋鼠妈妈找不到她的孩子了。她的孩子被怪兽抓走了。
袋鼠妈妈现在在地图的左上角,她的孩子在地图第 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 列。
用 . 表示空地,用 * 表示墙。袋鼠妈妈所在的位置和孩子所在的位置用 . 表示。
数据保证有解。
Examples
input
2 6
1 3 4
output
..**
……
题解: 不用考虑构造 , 由于数据很小所以直接暴搜。我们先假设地图都没有墙 , 然后按路径搜索。 按路径搜搜索的话 , 对于当前dfs的点,它周围不能有超过1个点已经走过。仔细想想,一条路径中除了两个端点其它点都是和两个点相连接的!
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>#include <stdlib.h>#define sc scanf#define pr printfusing namespace std;bool is_ok;int n,m,k,ans_x,ans_y,mapp[10][10] , book[10][10];int fx[4] = {1,-1,0,0};int fy[4] = {0,0,1,-1};bool dfs(int x , int y , int step);int main(){ memset(book,0,sizeof(book)); memset(mapp,0,sizeof(mapp)); sc("%d%d",&n,&m); sc("%d%d%d",&ans_x , &ans_y , &k); book[0][0] = 1; dfs(0 , 0 , 0); return 0;}bool dfs(int x , int y , int step){ int sum = 0; for(int i=0; i<4; i++) { int ax = x + fx[i]; int ay = y + fy[i]; if(ax>=0 && ax<n && ay>=0 && ay<m && book[ax][ay]) sum += 1; } // pr("%d %d %d\n",x,y,sum); if(sum > 1) return 0; book[x][y] = 1; if(x == ans_x-1 && y==ans_y-1 && step>=k) { int i, j ; for(i=0; i<n; i++) { for(j=0; j<m; j++) { if(book[i][j]) pr("."); else pr("*"); } pr("\n"); } return 1; } for(int i=0; i<4; i++) { int ax = x + fx[i]; int ay = y + fy[i]; if(ax>=0 && ax<n && ay>=0 && ay<m && !book[ax][ay]) if(dfs(ax,ay,step+1)) return 1; } book[x][y] = 0; return 0;}
0 0
- 2017年华东师范大学网络赛 C
- 2017年华东师范大学网络赛 A
- 2017年华东师范大学网络赛 E
- 2017年华东师范大学网络赛 F
- 2017年华东师范大学网络赛 G
- 2016年华东师范大学考研分数线汇总
- 最新!2017年华南师范大学计算机科学与技术考研参考书
- 2017年华南师范大学历史文化学院考研科目和参考书目
- 2014年华东师范大学软件学院博士研究生招生复试名单(动态更新)
- 2017年华东师范大学校赛
- 2011福州师范大学晋级赛
- 2012年华南师范大学考研真题(625计算机基础+806教育技术学)
- 论诚信与网络的发展--作者:张世杰 (云南师范大学)
- 2017年华中科技大学上机详解
- 2017年华为实习编程题
- 2017年华为实习生面经
- 2017年华为实习生笔试题
- 2005年华为招聘--C语言笔试试题
- C++抽象编程——算法分析(5)——标准复杂度类
- 从MySQL数据库中导出数据
- datastage序列job参数传入内部嵌套的job注意事项
- 如何解决web系统session劫持
- CSS的规范化
- 2017年华东师范大学网络赛 C
- Struts2之OGNL表达式与值栈对象及常用标签的使用
- View的绘制流程源码分析(Android开发艺术探索学习笔记)
- 单位阶跃函数(Heaviside/unit step function)—— 化简分段函数
- 引导页的实现
- 函数
- js中的Math和Date对象
- Ganglia与Nagios介绍
- Fedora 安装ruby