Luogu P2298 Mzc和男家丁的游戏
Mzc和男家丁的游戏
题目背景
mzc与djn的第二弹。
题目描述
mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道)。他把她们召集在了一起,他们决定玩捉迷藏。现在mzc要来寻找他的男家丁,大家一起来帮忙啊!
由于男家丁数目不多,再加上mzc大大的找人【laopo】水平很好,所以一次只需要找一个男家丁。
输入输出格式
输入格式:
第一行有两个数n,m,表示有n行m列供男家丁躲藏,
之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地。
输出格式:
一行,若有解:一个数sum,表示找到男家丁的最短移动次数。
若无解:输出“No Way!”。
输入输出样例
5 6
.#..#.
....#.
d.....
#####.
m.....
12
说明
3=<M,n<=2000
由于mzc大大十分着急,所以他只能等待1S。
好水啊。我不想写了,大大们直接看代码吧。>_<
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue> using namespace std; int n, m, sx, sy, ex, ey; char map[2003][2003]; bool vis[2003][2003], mark = false; struct node{int x, y, tot;}; queue<node> P; int dx[10] = {1, 0, -1, 0};
int dy[10] = {0, 1, 0, -1}; void bfs(node now) {
while(!P.empty()) {
now = P.front();
P.pop();
int x = now.x, y = now.y, tot = now.tot;
if(x == ex&&y == ey) {printf("%d\n", tot); mark = true; return ;}
for(int i=0; i<4; i++) {
int xx = dx[i]+x, yy = dy[i]+y;
if(xx <= n&&yy <= m&&xx > 0&&yy > 0&&map[xx][yy] != '#'&&!vis[xx][yy]) {
vis[xx][yy] = 1;
P.push((node) {xx, yy, tot+1});
}
}
}
} int main() {
scanf("%d%d", &n, &m);
for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) {cin>>map[i][j]; if(map[i][j] == 'm')sx = i, sy = j; if(map[i][j] == 'd')ex = i, ey = j;}
P.push((node) {sx, sy, 0});
vis[sx][sy] = 1;
bfs(P.front());
if(mark == false) printf("No Way!\n");
}
Luogu P2298 Mzc和男家丁的游戏的更多相关文章
- 【luogu P2298 Mzc和男家丁的游戏】 题解
题目链接:https://www.luogu.org/problemnew/show/P2298 对于迷宫问题,bfs是比较好的选择. 直接bfs模板 #include <iostream> ...
- 洛谷——P2298 Mzc和男家丁的游戏
P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...
- 洛谷 P2298 Mzc和男家丁的游戏
P2298 Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来 ...
- 洛谷 P2298 【Mzc和男家丁的游戏 】
这道题还是挺水的,广搜模板题,注意一下细节就是了. :码代上上代码: #include <bits/stdc++.h> using namespace std; int n , m , s ...
- 洛谷——P2126 Mzc家中的男家丁
P2126 Mzc家中的男家丁 题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道 ...
- 洛谷 P2126 Mzc家中的男家丁
题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了).现在知道mzc与男家丁们互 ...
- Mzc家中的男家丁
题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了).现在知道mzc与男家丁们互 ...
- Luogu P1290 欧几里得的游戏/UVA10368 Euclid's Game
Luogu P1290 欧几里得的游戏/UVA10368 Euclid's Game 对于博弈论的题目没接触过多少,而这道又是比较经典的SG博弈,所以就只能自己来推关系-- 假设我们有两个数$m,n$ ...
- $P2126 Mzc家中的男家丁$
problem #ifdef Dubug #endif #include <bits/stdc++.h> using namespace std; typedef long long LL ...
随机推荐
- 防遗忘笔记,Fedora交叉编译window下的virt-iewer的汉化
1. 汉化代码里的资源 virtviewer使用的是gettex的方案是标准的linux里国际化的方案.按道理仅仅须要改动virtualviewer/po/zh_CN.po的文件. 编译. 然后确认在 ...
- nodejs下cannot post错误
我写了一段CoffeeScript代码,主要是流程为: 1.当客户端请求方式为GET时,输出页面,页面上有个form,form 里有个submit按钮.form的 action="" ...
- JAVA Swing 组件演示***
下面是Swing组件的演示: package a_swing; import java.awt.BorderLayout; import java.awt.Color; import java.awt ...
- MSP430:串口输出
初始化 void Uart_Init(void) { BCSCTL1 = CALBC1_1MHZ; // Set DCO DCOCTL = CALDCO_1MHZ; P1SEL = BIT1 + BI ...
- jqxtree异步加载部门树
整体思路 A.要想实现异步加载第一次加载的是一级部门 B.加载一级部门,如果有子部门,部门前面带+号,没有子部门,部门前面没有+号(+号也就是点击可以展开) C.在sql中实现如果有子部门默认都加载一 ...
- scrapy xpath中提取多个class值
xpath中没有提供对class的原生查找方法.但是 stackoverflow 看到了一个很有才的回答: This selector should work but will be more eff ...
- Oh,mygoddess
很早的时候就看了这一道题目 , 当时不会做 , 现在 边听歌边写无压力 ........ 题意 : 光辉骑士 一直都在 迷宫的右上角 , 第一行给你迷宫的规格 , 下面是迷宫 "O" ...
- 【HTML5】基于HTML5的高性能动画与游戏
其实这篇文章类似版本早在12年就在网上各处出现了,也随着HTML5的兴起,HTML的新特性也是倍受开发者们追捧,自然相关HTML5的高性能动画与游戏的相关文章也是层出不穷的,笔者也是在12年接触的相关 ...
- 题解报告:hdu 1162 Eddy's picture
Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become ...
- html 基础演示代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...