codevs2059逃出克隆岛(传送门bfs)
/*
和普通的迷宫问题类似只是多了一个叫传送门的东西
对于传送门的处理:
每当跑到传送门就把其余所有传送门周围的点都入队
传送门之间不花费时间并且从不是传送门的点走到传送门
也不花费时间花费时间的(好像说了句废话.) 所以判断一下
*/
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<algorithm>
#define maxn 5010
using namespace std;
int n,m,v,f[maxn][maxn],num;
char s[maxn][maxn];
int xx[]={,,,,-};
int yy[]={,,-,,};
int sx,sy,ex,ey;
struct node
{
int xi,yi;
int V;
};
struct Node
{
int xi,yi;
}door[];
queue<node>q;
int main()
{
scanf("%d%d%d",&n,&m,&v);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin>>s[i][j];
if(s[i][j]=='Y')
{
sx=i;sy=j;
s[i][j]='*';
}
if(s[i][j]=='C')
{
ex=i;ey=j;
s[i][j]='*';
}
if(s[i][j]=='P')
{
num++;
door[num].xi=i;
door[num].yi=j;
}
}
node tmp;
tmp.xi=sx;
tmp.yi=sy;
tmp.V=;
q.push(tmp);
f[sx][sy]=;
while(!q.empty())
{
node now=q.front();
q.pop();
int nx=now.xi;
int ny=now.yi;
if(s[nx][ny]=='*')//普通的点 只要周围的点入队
for(int i=;i<=;i++)
{
int ox=nx+xx[i];
int oy=ny+yy[i];
if(ox>&&ox<=n&&oy>&&oy<=m&&f[ox][oy]==&&s[ox][oy]!='#')
{
f[ox][oy]=;
node tmep;
tmep.xi=ox;
tmep.yi=oy;
if(s[ox][oy]=='*')tmep.V=now.V+v;
else tmep.V=now.V;//判断是不是要+time
q.push(tmep);
if(ox==ex&&oy==ey)
{
printf("%d",now.V);
return ;
}
}
}
if(s[nx][ny]=='P')//传送门单独处理
for(int i=;i<=num;i++)//所有的传送门 当然也包括他自己
{
int nx=door[i].xi;
int ny=door[i].yi;
for(int j=;j<=;j++)
{
int ox=nx+xx[j];
int oy=ny+yy[j];
if(ox>&&ox<=n&&oy>&&oy<=m&&f[ox][oy]==&&s[ox][oy]!='#')
{
f[ox][oy]=;
node tmep;
tmep.xi=ox;
tmep.yi=oy;
if(s[ox][oy]=='*')tmep.V=now.V+v;
else tmep.V=now.V;
q.push(tmep);
if(ox==ex&&oy==ey)
{
printf("%d",now.V);
return ;
}
}
}
}
}
printf("screw you!");
return ;
}
codevs2059逃出克隆岛(传送门bfs)的更多相关文章
- AC日记——逃出克隆岛 (bfs)
2059 逃出克隆岛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description oi小组的yh酷爱玩魔兽rpg,每天都 ...
- 逃出克隆岛 (codevs 2059)
较普通的走迷宫的题 传送门 :codevs 2059 逃出克隆岛 思路 :BFS 即可 PS :传送门 不必重复使用 #include <iostream> #include < ...
- codevs 2059 逃出克隆岛
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description oi小组的yh酷爱玩魔兽rpg,每天都会在u9搜索最新的rpg地图. 今天,他 ...
- 西南民族大学第十二届程序设计竞赛(同步赛) A.逃出机房 (bfs)
题意:有来两个人A和B,A追B,A和B每次向上下左右移动一个单位,一共有两扇门,问A是否可以追上B(在门口追上也算合法). 题解:当时看题意说在门口也算?就觉得是判断两个人到门口的时间,对他们两个人分 ...
- 使用 trash-cli 逃出 rm 命令误删除重要文件的阴影
今天是一个难忘的日子,当时本来想清除我们公司网站cms目录下面一些cdn推送网页后残留的垃圾文件,结果在执行rm -rf conten* 时打成了rm -rf conten *结果就悲剧了.cms目录 ...
- hdoj1072 Nightmare(bfs)
题目大意: 在迷宫中有一个炸弹,过六个单位时间就会爆炸,要你求一个起点到迷宫的终点的最短距离,迷宫中有时间重置器,当你走到这个格子,炸弹的爆炸时间重新置为0,迷宫中标识为墙壁的格子不能走,到达任意一个 ...
- hdu 1253 3维迷宫 在规定时间内能否出迷宫 (3维BFS)
题意:有一个人要在魔王回来之前逃出城堡.1表示墙,0表示路.魔王将在T分钟后回到城堡 起点可以是墙,但是人能走出.而终点也可以是墙,那自然就走不出了,但是要判断. 剪枝:如果终点是门或者从起点到终点的 ...
- Bfs+最短路【p3393】 逃离僵尸岛
Description 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有\(N\)个城市,城市之间有道路相连.一共有\(M\)条双向道路.保证没有自环和重边. \(K\ ...
- 【图论-最短路】【P3393】逃离僵尸岛
传送门 Description 小a住的国家被僵尸侵略了!小a打算逃离到该国唯一的国际空港逃出这个国家. 该国有N个城市,城市之间有道路相连.一共有M条双向道路.保证没有自环和重边. K个城市已经被僵 ...
随机推荐
- 2基本概念--python深度机器学习
参考彭亮老师的视频教程:转载请注明出处及彭亮老师原创 视频教程: http://pan.baidu.com/s/1kVNe5EJ 基本概念:训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分 ...
- 《python学习手册》之一——程序运行
Python解释器执行Python代码时候,大概经历如下几个阶段:(1) 加载代码文件 (2)翻译成AST (3)生成bytecode(.pyc文件,与编译的python版本有关).可以使用pytho ...
- ASP.NET服务器推送及前后台实时交互
一:项目需求 页面需要做一个上传Excel功能,并处理Excel中的数据到数据库中 这是一个较为漫长的过程 这时我需要在页面上显示处理进度的提示,给用户一个良好的体验 比如给用户提示“正在上传文档”, ...
- RR模式下利用区间锁防止幻读,RC模式没有区间锁会出现幻读
Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> select * from ...
- For循环复杂练习
for是循环当中经常用到的一个结构,练熟了才可以. 练习-需求描述: 在控制台打印以下形式的字符: * * * * * * * * * * * * * * * 思路,首先分析需求的规律 1.首先分析需 ...
- VS2010中fatal error LNK1123错误的解决方案
问题描述: 在VS2010项目编译时会出现如下错误:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决方案: 查找是否有两个cvtres.exe ...
- TCP/IP学习(四)TCP缓冲区大小及限制(转)
链接来自:http://blog.csdn.net/ysu108/article/details/7764461 这个问题在前面有的部分已经涉及,这里在重新总结下.主要参考UNIX网络编程. (1)数 ...
- 线性代数(高斯消元):JSOI2008 球形空间产生器sphere
JSOI2008 球形空间产生器sphere [题目描述] 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确 ...
- 【模拟】Codeforces 704A & 705C Thor
题目链接: http://codeforces.com/problemset/problem/704/A http://codeforces.com/problemset/problem/705/C ...
- QQ互联 回调地址
http://wiki.connect.qq.com/%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98% ...