C. 袋鼠妈妈找孩子
来源:互联网 发布:mysql不能输入中文 编辑:程序博客网 时间:2024/04/29 03:35
C. 袋鼠妈妈找孩子Time limit per test: 1.5 secondsTime limit all tests: 10.0 secondsMemory limit: 256 megabytesAccept / Submit: 41 / 172袋鼠妈妈找不到她的孩子了。她的孩子被怪兽抓走了。袋鼠妈妈现在在地图的左上角,她的孩子在地图第 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 列。用 . 表示空地,用 * 表示墙。袋鼠妈妈所在的位置和孩子所在的位置用 . 表示。数据保证有解。Examplesinput2 61 3 4output.*.***......
如果到达了(i,j)
显然 在(i,j)的上下左右 只能有一个点是已经到达过的(就是从该点到达(i,j)的)
加上这条件xjb搜一下 搜索到刚好第k步找到 然后就A了…
#include<stdio.h>#include <iostream>#include<stdlib.h>#include<algorithm>#include<vector>#include<deque>#include<map>#include<set>#include<queue>#include<math.h>#include<string.h>#include<string>using namespace std;#define ll long long#define pii pair<int,int>const int inf = 1e9 + 7;const int N = 10+5;bool vis[N][N];int dirX[]={0,0,-1,1};int dirY[]={-1,1,0,0};int n,m;int x,y,k;bool flag;void getAns(){ for(int i=0;i<n;++i){ for(int j=0;j<m;++j){ if(vis[i][j]==1){ putchar('.'); } else{ putchar('*'); } } putchar('\n'); }}bool check(int i,int j){ int visNum=0; for(int d=0;d<4;++d){ int ni=dirX[d]+i; int nj=dirY[d]+j; if(ni>=0&&nj>=0&&ni<n&&nj<m){ visNum+=vis[ni][nj]; } } return visNum<2;}void dfs(int i,int j,int steps){ vis[i][j]=1; if(flag){ return; } if(x==i&&y==j){ if(steps>=k){ flag=1; getAns(); return; } else{ vis[i][j]=0; return; } } for(int d=0;d<4;++d){ int ni=dirX[d]+i; int nj=dirY[d]+j; if(ni>=0&&nj>=0&&ni<n&&nj<m&&vis[ni][nj]==0&&check(ni,nj)){ dfs(ni,nj,steps+1); } } vis[i][j]=0;}int main(){ //freopen("/home/lu/Documents/r.txt","r",stdin); //freopen("/home/lu/Documents/w.txt","w",stdout); while(~scanf("%d%d",&n,&m)){ scanf("%d%d%d",&x,&y,&k); x-=1; y-=1; flag=0; memset(vis,0,sizeof(vis)); dfs(0,0,0); } return 0;}
阅读全文
0 0
- C. 袋鼠妈妈找孩子
- ecnu3260(袋鼠妈妈找孩子)
- 大学生程序设计邀请赛(华东师范大学)C:袋鼠妈妈找孩子
- ecnu 3260 袋鼠妈妈找孩子
- EOJ 3260:袋鼠妈妈找孩子
- EOJ 3260 袋鼠妈妈找孩子 题解
- EOJ-大学生程序设计邀请赛(华东师范大学)-C-袋鼠妈妈找孩子
- EOJ-大学生程序设计邀请赛(华东师范大学)-C-袋鼠妈妈找孩子
- EOJ 3260 大学生程序设计邀请赛(华东师范大学)-C 袋鼠妈妈找孩子
- EOJ 3260袋鼠妈妈找孩子 (DFS)
- 2017华东师范大学网赛-袋鼠妈妈找孩子
- 袋鼠妈妈找孩子 2017 华东师范大学网赛
- EOJ 3260袋鼠妈妈找孩子(dfs路径查找(过程优化))
- 小蝌蚪找妈妈
- 孩子,抓紧妈妈的手
- 童言稚语-爸爸妈妈都是孩子
- 孩子跟妈妈一起去按摩
- 找树根和孩子
- python 敏感词过滤
- 追踪记录每笔业务操作数据改变的利器——SQLCDC
- 本地git和远程github连接完整教程
- STL系列之四 heap 堆
- CENTOS7.0开放端口或者关闭防火墙
- C. 袋鼠妈妈找孩子
- mysql
- Spark MLlib 入门学习笔记
- 清除浮动的方法
- STL系列之五 priority_queue 优先级队列
- Timer 的Timer schedule()方法
- 15 个 Android 通用流行框架大全
- Android好用的下拉图片放大效果
- opengles之VBO和FBO的结合使用