ECNU 3260 - 袋鼠妈妈找孩子
题目链接:http://acm.ecnu.edu.cn/problem/3260/
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
- 2 6
- 1 3 4
- .*.***
- ......
根据网赛的题解:
由于数据范围很小,直接搜索就可以了。考虑 DFS,每一个要走的格子,周围最多只能有一格(其实就是走过来的那一格)是走过的。全部搜一遍就结束了。
所以我们就DFS走呗,除去保存下来的路径,其他都建成墙就行了。
当然,要注意的一点是:
(我刚开始也是step==k,然后特判了k<曼哈顿距离依然还有个case9不能过,改了之后总算过了……)
- #include<cstdio>
- int n,m,x,y,k;
- struct Point{
- int x,y;
- }st,ed;
- bool vis[][],flag;
- int dx[]={,-,,};
- int dy[]={,,-,};
- bool is_in(int x,int y)
- {
- if(<=x && x<=n && <=y && y<=m) return ;
- else return ;
- }
- bool judge(Point now)
- {
- Point next;
- int cnt=;
- for(int i=;i<;i++)
- {
- next.x=now.x+dx[i];
- next.y=now.y+dy[i];
- if(is_in(next.x,next.y) && vis[next.x][next.y]) cnt++;
- }
- if(cnt<=) return ;
- else return ;
- }
- void dfs(Point now,int step)
- {
- if(flag) return;
- if(now.x==ed.x && now.y==ed.y)
- {
- if(step>=k)
- {
- flag=;
- vis[now.x][now.y]=;
- }
- return;
- }
- vis[now.x][now.y]=;
- Point next;
- for(int i=;i<;i++)
- {
- next.x=now.x+dx[i];
- next.y=now.y+dy[i];
- if(is_in(next.x,next.y)&&!vis[next.x][next.y]&&judge(next))
- {
- dfs(next,step+);
- if(flag==) vis[next.x][next.y]=;
- }
- }
- return;
- }
- int main()
- {
- scanf("%d%d%d%d%d",&n,&m,&x,&y,&k);
- st.x=, st.y=;
- ed.x=x, ed.y=y;
- flag=;
- for(int i=;i<=;i++)
- {
- for(int j=;j<=;j++)
- {
- if(is_in(i,j)) vis[i][j]=;
- else vis[i][j]=;
- }
- }
- dfs(st,);
- for(int i=;i<=n;i++)
- {
- for(int j=;j<=m;j++)
- {
- printf("%c",(vis[i][j]==)?'.':'*');
- }
- printf("\n");
- }
- }
ECNU 3260 - 袋鼠妈妈找孩子的更多相关文章
- ECNU 3260 袋鼠妈妈找孩子(dfs)
链接:http://acm.ecnu.edu.cn/problem/3260/ 题意: 给出一个x,y,k.求从左上角到(x,y)最短路径不少于k而且最快到达(x,y)的迷宫.(迷宫有多个 输出其中一 ...
- EOJ 3260 袋鼠妈妈找孩子
暴力搜索. 主要目的就是找到任意一条路径,使得路径长度大于等于$k+1$,写个爆搜发现很快能出解.判断某点是否可走,需要看四周有没有已经走过的点的$dis$比这个点的$dis$小$2$或者$2$以上. ...
- [automator篇][9] 列表,找孩子
private boolean ClickByCollInfo(int CLICK, String classname, String id, String text) { UiSelector ui ...
- 51nod - 1420 - 数袋鼠好有趣 - 贪心 - 二分
https://www.51nod.com/Challenge/Problem.html#!#problemId=1420 一开始乱搞了一发,每个袋鼠二分找最小的能放它的,然后二分的范围从下一个开始保 ...
- 【日语】日语单词N3_N4_N5
日语单词N3_N4_N5 单 词 讲 解 あ行单词 ああ:0[副]那样.那种 例句:ああ言うことはしないほうがいい.那样的事情最好不做. 電車の窓からごみを棄てているああ言うことはしないほうがいい. ...
- 日语单词N3_N4_N5
单 词 讲 解 あ行单词 ああ:0[副]那样.那种 例句:ああ言うことはしないほうがいい.那样的事情最好不做. 電車の窓からごみを棄てているああ言うことはしないほうがいい. 挨拶(あいさつ):① 寒暄 ...
- Objective-c 代理模式(delegate)
Objective-c 代理模式(delegate) (2012-07-31 22:04:39) 转载▼ 标签: 杂谈 分类: iOS Objective-c 代理模式(delegate) 一 ...
- 银行HR:寒门再难出贵子
银行HR:寒门再难出贵子来源:金融行业网 2013 年 8 月 6 日 来源:天涯社区 作者:永乐大帝二世 本文是一位银行的HR写的,他工作了10年,接待了一群到银行实习的实习生,然后观察他们发生的好 ...
- English-旅游英语及情景对话
1.旅游英语:预订机票情景对话及常用句型 目前,越来越多的人都选择以飞机为出行方式.但是如何用一口流利的英语订机票呢?这里我们替你总结了一些情景对话,还有一些常用的句型.大家都来学一学吧~A:Good ...
随机推荐
- spring mvc处理方法返回方式
Model: package org.springframework.ui; import java.util.Collection; import java.util.Map; public int ...
- nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)
当你执行sudo nginx -s reload时出现nginx: [error] open() "/run/nginx.pid" failed (2: No such file ...
- ajax简单手写了一个猜拳游戏
使用ajax简单写一个猜拳游戏 HTML代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <me ...
- iOS - 解决Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named
1 本来cocopods没有问题,最近创建项目,利用cocopods导入第三方库的时候,出现如下错误: [!] Unable to add a source with url `https://gi ...
- CM和CDH的安装-准备工作
估计要分开来两篇博客说明,因为截图较多. 1.三个节点cdh1(主节点),cdh2,cdh3 配置就用一张图来说明,因为资源有限 2.版本依赖说明: CDH-5.9.0-1.cdh5.9.0.p0.2 ...
- WAF Bypass FUZZ小脚本
分享两个小脚本,用来WAF Bypass简单FUZZ的 第一个:先生成一个字典,带入搭建的环境进行FUZZ,针对某些软WAF挺好用的,可FUZZ出不少姿势出来,记得先把CC攻击加入白名单才行哦... ...
- 判断资源贴图是否有alpha
/* modfly selected textures`s maxSize and ImportFormat bool hasAlpha = true; if(hasAlpha)then(textur ...
- ListView实现多种item布局的方法和注意事项
这篇文章的效果也是大家常见的,各种通讯应用的对话列表都是这种方式,像微信.whatsapp.易信.米聊等.我们这篇文章也权当为回忆,形成简单的笔记.这篇文章参考了2009年Google IO中的< ...
- c语言学习笔记---预编译
专题三: 1) 预编译 处理所有的注释,以空格代替, 将所有的#define删除,并且展开所有的宏定义, 处理条件编译指令#if,#ifdef,#elif,#else,#endif 处理# ...
- iis下的php环境的配置
1. 参考园友文章: http://www.cnblogs.com/zengxiangzhan/archive/2010/03/05/1679286.html 2.另外还可以参考一下文章: http: ...