P2298 Mzc和男家丁的游戏

题目背景

mzc与djn的第二弹。

题目描述

mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道)。他把她们召集在了一起,他们决定玩捉迷藏。现在mzc要来寻找他的男家丁,大家一起来帮忙啊!

由于男家丁数目不多,再加上mzc大大的找人【laopo】水平很好,所以一次只需要找一个男家丁。

输入输出格式

输入格式:

第一行有两个数n,m,表示有n行m列供男家丁躲藏,

之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地。

输出格式:

一行,若有解:一个数sum,表示找到男家丁的最短移动次数。

若无解:输出“No Way!”。

输入输出样例

输入样例#1:

5 6
.#..#.
....#.
d.....
#####.
m.....
输出样例#1:

12

说明

3=<M,n<=2000

由于mzc大大十分着急,所以他只能等待1S。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2100
using namespace std;
char ch[N][N];
int n,m,ans,sx,sy;
bool vis[N][N],flag;
]={-,,,},yy[]={,,,-};
void dfs(int x,int y,int s)
{
    if(ch[x][y]=='d')
    {
        flag=true;
        ans=min(ans,s);
        return ;
    }
    ||y<||x>n||y>m||vis[x][y]) return ;
    vis[x][y]=true;++s;
    ;i<;i++)
    {
        int fx=x+xx[i],fy=y+yy[i];
        dfs(fx,fy,s);
    }
    vis[x][y]=false;
}
int main()
{
    scanf("%d%d",&n,&m);
    ;i<=n;i++)
     ;j<=m;j++)
     {
         cin>>ch[i][j];
         if(ch[i][j]=='m') sx=i,sy=j;
         if(ch[i][j]=='#') vis[i][j]=true;
      }
    ans=);
    if(!flag) printf("No Way!");
    else printf("%d",ans);
    ;
}

20分超时的dfs

bfs水过,我们可以知道第一个搜到的家丁的位置即为最优的,直接输出答案。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2200
using namespace std;
char ch[N][N];
bool vis[N][N],flag;
]={-,,,},yy[]={,,,-};
],d[N][N];
int main()
{
    scanf("%d%d",&n,&m);
    ;i<=n;i++)
     ;j<=m;j++)
     {
         cin>>ch[i][j];
         if(ch[i][j]=='m') sx=i,sy=j;
         if(ch[i][j]=='#') vis[i][j]=true;
      }
    q[tail][]=sx,q[tail][]=sy;++tail;
    memset(d,;
    while(head<tail)
    {
        x=q[head][],y=q[head][];
        ;}
        ++head;
        ;i<;i++)
        {
            int fx=x+xx[i],fy=y+yy[i];
            ||fy<||fx>n||fy>m||vis[fx][fy]) continue;
            ))
              d[fx][fy]=d[x][y]+,q[tail][]=fx,q[tail][]=fy,++tail;
        }
    }
    printf("No Way!");
    ;
}

洛谷——P2298 Mzc和男家丁的游戏的更多相关文章

  1. 洛谷 P2298 Mzc和男家丁的游戏

    P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...

  2. Luogu P2298 Mzc和男家丁的游戏

    Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来寻找他的男家 ...

  3. 【luogu P2298 Mzc和男家丁的游戏】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2298 对于迷宫问题,bfs是比较好的选择. 直接bfs模板 #include <iostream> ...

  4. 洛谷 P2298 【Mzc和男家丁的游戏 】

    这道题还是挺水的,广搜模板题,注意一下细节就是了. :码代上上代码: #include <bits/stdc++.h> using namespace std; int n , m , s ...

  5. 洛谷 P2299 Mzc和体委的争夺战

    洛谷 P2299 Mzc和体委的争夺战 题目背景 mzc与djn第四弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙), ...

  6. 洛谷P2299 Mzc和体委的争夺战 题解

    题目 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁. mzc很生气,决定与其决斗,但cat的体 ...

  7. 【洛谷P2584】【ZJOI2006】GameZ游戏排名系统题解

    [洛谷P2584][ZJOI2006]GameZ游戏排名系统题解 题目链接 题意: GameZ为他们最新推出的游戏开通了一个网站.世界各地的玩家都可以将自己的游戏得分上传到网站上.这样就可以看到自己在 ...

  8. 洛谷——P2126 Mzc家中的男家丁

    P2126 Mzc家中的男家丁 题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道 ...

  9. 洛谷 P2126 Mzc家中的男家丁

    题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了).现在知道mzc与男家丁们互 ...

随机推荐

  1. urlrewrite地址重写实例

    urlrewrite主要实现后天请求中的地址重写,防止被安全漏洞盲注入 http://tuckey.org/urlrewrite/ 下载最新的jar 下面是使用说明: 1.下载urlrewrite,官 ...

  2. layui和jquery冲突:Syntax error, unrecognized expression: +

    问题 layui创建table数据表格,但点击第二页时控制台报错,错误信息如下: 解决方法 https://fly.layui.com/jie/24224/ http://www.layui.com/ ...

  3. shell脚本,计算创建100个文件所用多少时间。

    [root@localhost mulu]# ls [root@localhost mulu]# `; do touch file$i; done real 0m0.104s user 0m0.012 ...

  4. javaEE(1)_web开发入门

    一.WEB开发的相关知识 1.WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页 ...

  5. PWA介绍

    https://codelabs.developers.google.com/codelabs/your-first-pwapp/#0 PWA是一些技术的集合.用于消除web与其他客户端之间的差距,最 ...

  6. 【转发】【linux】【php】centos 编译php常见错误

    configure: error: xml2-config not found. Please check your libxml2 installation. yum install libxml2 ...

  7. (转)UILabel常用属性

    Java代码 收藏代码 #import "ViewController.h" #import <CoreText/CoreText.h> @interface View ...

  8. MIP求解方法总结

    *本文主要记录和分享学习到的知识,算不上原创 *参考文献见链接 本文主要简述了求解MIP问题的两大类(精确求解和近似求解),或者更细致地,三大类方法(精确算法,ε-近似算法和启发式算法).由于暂时不太 ...

  9. Python中的socket网络编程(TCP/IP,UDP)讲解

    在网络编程中的一个基本组件就是套接字(socket).套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同的计算机上,通过套接字互相发送信息.套接字包括两个:服务器套 ...

  10. 1,python初识

    什么是变量? 变量:将程序的中间结果暂时存储起来,以便后续程序调用. 什么是字符串类型? python中被引号引起来的数据就是字符串.字符串类型,也简称str类型. 在python中 int是什么? ...