小A和uim之大逃离 II

思路:

  spfa;

代码:

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
struct NodeType
{
int x,y,k;
NodeType(int x_,int y_,int k_):x(x_),y(y_),k(k_){}
NodeType(){}
};
const int dx[]={,-,,,};
const int dy[]={,,,,-};
int n,m,d,r,dis[][][];
char Map[][];
queue<NodeType>que;
bool if_[][][];
int main()
{
scanf("%d%d%d%d",&n,&m,&d,&r);
for(int i=;i<=n;i++) scanf("%s",Map[i]+);
for(int i=;i<=n;i++)
{
for(int v=;v<=m;v++) dis[i][v][]=dis[i][v][]=INF;
}
dis[][][]=;int x,y,k;que.push(NodeType(,,)),if_[][][]=true;
NodeType now;
for(;!que.empty();)
{
now=que.front(),que.pop();
if_[now.x][now.y][now.k]=false,k=now.k;
for(int i=;i<=;i++)
{
x=now.x+dx[i],y=now.y+dy[i];
if(x>&&x<=n&&y>&&y<=m&&Map[x][y]=='.')
{
if(dis[now.x][now.y][k]+<dis[x][y][k])
{
dis[x][y][k]=dis[now.x][now.y][k]+;
if(!if_[x][y][k]) if_[x][y][k]=true,que.push(NodeType(x,y,k));
}
}
}
if(!k)
{
x=now.x+d,y=now.y+r;
if(x>&&x<=n&&y>&&y<=m&&Map[x][y]=='.')
{
dis[x][y][]=dis[now.x][now.y][]+;
if(!if_[x][y][]) if_[x][y][],que.push(NodeType(x,y,));
}
}
}
if(dis[n][m][]==INF&&dis[n][m][]==INF) printf("-1\n");
else printf("%d\n",min(dis[n][m][],dis[n][m][]));
return ;
}

AC日记——小A和uim之大逃离 II 洛谷七月月赛的更多相关文章

  1. 小a和uim之大逃离(洛谷 1373)

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  2. 【洛谷P3818】小A和uim之大逃离 II

    小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 #include<iostream> ...

  3. P3818 小A和uim之大逃离 II(洛谷月赛)

    P3818 小A和uim之大逃离 II 题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然 ...

  4. P3818 小A和uim之大逃离 II(bfs,有条件的广搜)

    题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...

  5. luogu P3818 小A和uim之大逃离 II

    题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...

  6. P3818 小A和uim之大逃离 II

    题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...

  7. 洛古 P1373 小a和uim之大逃离

    P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...

  8. 洛谷 P1373 小a和uim之大逃离

    2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...

  9. 洛谷1373 小a和uim之大逃离

    洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...

随机推荐

  1. atom插件安装引发的nodejs和npm安装血案

    最近在写前端网页,学习就要从高大上的地方开始,于是我打算装一个atom编辑器. 本来就是由github客户端的,再装个atom也算是配套了吧,其实本白也是蛮费心思的,技术不怎么地,什么神器都再努力地使 ...

  2. python安装包下载

    加入python官网一次按照下图点击: 这个exe文件就下好了,然后再安装一下即可.

  3. STL源码分析-function

    http://note.youdao.com/noteshare?id=269e16541b43095eaf97636d4e046b1d

  4. P1801 黑匣子_NOI导刊2010提高(06)

    P1801 黑匣子_NOI导刊2010提高(06) 题目描述 Black Box是一种原始的数据库.它可以储存一个整数数组,还有一个特别的变量i.最开始的时候Black Box是空的.而i等于0.这个 ...

  5. linux shell学习二

    参考:http://www.cnblogs.com/waitig/p/5531463.html Shell注释 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面 ...

  6. 基于packstack的openstack单节点安装

    一.安装源处理 1.更新base源为网易的源 cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo ...

  7. ndk如何将代码放在jni之外

    LOCAL_PATH := $(call my-dir)SDK_PATH := ../../.. include $(CLEAR_VARS)LOCAL_MODULE := libiconv_stati ...

  8. Spring 源码学习(3) —— 增加属性注册编辑器

    创建一个实体类UserManager: /** * @filename: UserManager.java * @desc 增加属性编辑器功能测试实体类 * @author: Wang Chinda ...

  9. python 常用模块之ConfigParser

    在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在Python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser, Python C ...

  10. [php]apache虚拟主机配置

    1.所谓虚拟主机的配置,即url与磁盘目录的绑定 2.在httpd.conf中查询Virtual host,发现有注释说明需要在conf/extra/httpd-vhosts.conf中进行配置. 3 ...