HDU2612 -暑假集训-搜索进阶N
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N
这两天总是因为一些小错误耽误时间,我希望自己可以细心点。珍惜时间,珍爱生命!
#include<iostream>
#include<algorithm>
#include<string.h>
#include<ctype.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<limits.h>
#include<queue>
#include<stack>
using namespace std;
#define INF 0xfffffff
#define max(a, b) a>b?a:b
#define min(a, b) a<b?a:b
#define N 210
int dir[4][2]= {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
int m, n, visit[N][N];
char maps[N][N];
typedef struct maze
{
int x, y, s;
} MAZE;
MAZE a, b;
struct node
{
int t1, t2, t;
} p[N][N]; void BFS();
void bfs();
void print();
int main()
{
while(scanf("%d%d", &m, &n)!=EOF)
{
for(int i=0; i<m; i++)
{
getchar();
for(int j=0; j<n; j++)
{
scanf("%c", &maps[i][j]);
if(maps[i][j]=='Y')
{
a.x=i;
a.y=j;
a.s=0;
maps[i][j]='.';
}
if(maps[i][j]=='M')
{
b.x=i;
b.y=j;
b.s=0;
maps[i][j]='.';
}
}
}
memset(p, 0, sizeof(p));
memset(visit, 0, sizeof(visit));
BFS();
memset(visit, 0, sizeof(visit));
bfs();
print();
}
return 0;
}
void BFS()
{
queue<MAZE>Q;
Q.push(a);
MAZE v, w;
visit[a.x][a.y]=1;
while(!Q.empty())
{
w=Q.front();
p[w.x][w.y].t1=w.s;
Q.pop();
for(int i=0; i<4; i++)
{
v.x=w.x+dir[i][0];
v.y=w.y+dir[i][1];
v.s=w.s+1;
if(v.x>=0&&v.x<m&&v.y>=0&&v.y<n&&maps[v.x][v.y]!='#'&&visit[v.x][v.y]==0)
{
visit[v.x][v.y]=1;
Q.push(v);
}
}
}
}
void bfs()
{
queue<MAZE>q;
q.push(b);
visit[b.x][b.y]=1;
MAZE z, w;
while(q.size())
{
w=q.front();
p[w.x][w.y].t2=w.s;
q.pop();
for(int i=0; i<4; i++)
{
z.x=w.x+dir[i][0];
z.y=w.y+dir[i][1];
z.s=w.s+1;
if(z.x>=0&&z.x<m&&z.y>=0&&z.y<n&&maps[z.x][z.y]!='#'&&visit[z.x][z.y]==0)
{
visit[z.x][z.y]=1;
q.push(z);
}
}
}
}
void print()
{
int w=INT_MAX;
int ans;
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
{
if(maps[i][j]=='@')
{
if(p[i][j].t1!=0&&p[i][j].t2!=0)
{
ans=p[i][j].t1+p[i][j].t2;;
if(ans<w)
{
w=ans;
}
}
}
}
printf("%d\n", w*11);
}
HDU2612 -暑假集训-搜索进阶N的更多相关文章
- poj3984《迷宫问题》暑假集训-搜索进阶
K - 迷宫问题 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bit ...
- POJ-3126 暑假集训-搜索进阶F题
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/F 经验就是要认真细心,要深刻理解.num #include& ...
- Oil Deposits -----HDU1241暑假集训-搜索进阶
L - Oil Deposits Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:32768KB ...
- 2015UESTC 暑假集训总结
day1: 考微观经济学去了…… day2: 一开始就看了看一道题目最短的B题,拍了半小时交了上去wa了 感觉自己一定是自己想错了,于是去拍大家都过的A题,十分钟拍完交上去就A了 然后B题写了一发暴力 ...
- 【算法系列学习三】[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 反向bfs打表和康拓展开
[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 这是一道经典的八数码问题.首先,简单介绍一下八数码问题: 八数码问题也称为九宫问题.在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的 ...
- STL 入门 (17 暑假集训第一周)
快速全排列的函数 头文件<algorithm> next_permutation(a,a+n) ---------------------------------------------- ...
- 暑假集训Day2 互不侵犯(状压dp)
这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...
- 暑假集训Day1 整数划分
题目大意: 如何把一个正整数N(N长度<20)划分为M(M>=1)个部分,使这M个部分的乘积最大.N.M从键盘输入,输出最大值及一种划分方式. 输入格式: 第一行一个正整数T(T<= ...
- poj 1426 Find The Multiple 搜索进阶-暑假集训
E - Find The Multiple Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I6 ...
随机推荐
- python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
原文地址: python抓取51CTO博客的推荐博客的全部博文,对标题分词存入mongodb中
- 前言和第一章.NET的体系结构
前言 COM:组件对象模型(Component Object Model COM)源自对象链接和嵌入(Object Linking and Embedding )OLE. DCOM:(Distribu ...
- NHibernate 组件基础 (第六篇)
NHibernate 组件基础 (第六篇) 一.组件简介 组件(Component)可以理解为被一个对象所包含的对象而持久化,而并非一个实体.简单说来,假如数据库有FirstName,LastName ...
- Linux安装php-7.0.16,完成php和apache的配置
Linux安装php-7.0.16,完成php和apache的配置 版本:php-7.0.16.tar.gz,libxml2-2.9.2.tar.gz(php需要它的支持,首先安装它) 说明 ...
- 【Python+selenium】之奇怪问题总结
问题1: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> Time Elapsed: 0:00:04 ...
- android greendao3.0 多表关联关系讲解(转)
转自:http://www.jianshu.com/p/dbec25bd575f 前言 之前用过数据库框架:realm.kjdb,今天准备实践学习一下greendao 3.0.greendao 3.0 ...
- openresty 定时器
[1]nginx定时器应用 (1)文件目录结构 (2)nginx.conf配置 lua_package_path "/usr/local/lib/ubcsrvd/lualib/?.lua;; ...
- Composer的Autoload源码实现1——启动与初始化
前言 上一篇文章,我们讨论了 PHP 的自动加载原理.PHP 的命名空间.PHP 的 PSR0 与 PSR4 标准,有了这些知识,其实我们就可以按照 PSR4 标准写出可以自动加载的程序了.然而我们为 ...
- python 上传文件下载图片
python 2.7 poster-0.8.1 requests-2.7.0 #coding:utf-8import urllibimport urllib2import sysimport time ...
- 使用 Xcode 5 生成和使用静态库
本文转载至 http://blog.csdn.net/qq331436155/article/details/18363267 静态库Static Libraryiosxcode 在项目中 ...