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. js解析json格式

    function save(){ var value2 = { "china":[ {"name":"hangzhou", "it ...

  2. [Tkinter 教程] 布局管理 (Pack Place Grid)

    原系列地址: Python Tkinter 简介: 本文讲述如何使用 tkinter 的布局管理 (被称作 layout managers 或 geometry managers). tkinter ...

  3. HTML5<picture>元素

    HTML5<picture>元素可以设置多张图片 <!DOCTYPE html><html><head><meta http-equiv=&quo ...

  4. react入门(上)

    1. ReactJS是什么? 1). Facebook开源的一个js库 2). 一个用于动态构建用户界面的js库2. React的特点 * Declarative(声明式编码) * Component ...

  5. vue 使用element-ui实现城市三级联动

    <template> <div> <el-select v-model="prov" style="width:167px;margin-r ...

  6. 51nod 1265 四点共面——计算几何

    题目链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1265 以其中某一点向其它三点连向量,若四点共面,这三个向量定义的平行六面体 ...

  7. LuoguP1351 联合权值 (枚举)

    题目链接 枚举每个点,遍历和他相邻的点,然后答案一边更新就可以了. 最大值的时候一定是两个最大值相乘,一边遍历一边记录就好了. 时间复杂度.\(O(n)\) #include <iostream ...

  8. (42)zabbix使用IT services 了解服务器SLA整体情况

    什么是IT Services 服务器或者某项服务.业务的可用率,不懂技术的上级领导会过问最近服务器可用率如何.所有api的状况怎么样? 通常一些技术人员会说负载怎么样,哪些cpu使用率怎么样,硬盘使用 ...

  9. js 做的随机8位验证码

    开发思路: 画出放置验证码的模块.一个写有“看不清…”的小块,以及输入验证码的文本框 获取各个模块 封装一个函数Yan_ma(),设置验证码为8位,里面含有数字,小写字母,小写字母和中文.每种类型出现 ...

  10. LeetCode(107) Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...