AC日记——小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 洛谷七月月赛的更多相关文章
- 小a和uim之大逃离(洛谷 1373)
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 【洛谷P3818】小A和uim之大逃离 II
小A和uim之大逃离 II 题目链接 比较裸的搜索,vis[i][j]再加一层[0/1]表示是否使用过魔液 转移时也将是否使用过魔液记录下来,广搜即可 #include<iostream> ...
- P3818 小A和uim之大逃离 II(洛谷月赛)
P3818 小A和uim之大逃离 II 题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然 ...
- P3818 小A和uim之大逃离 II(bfs,有条件的广搜)
题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...
- luogu P3818 小A和uim之大逃离 II
题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...
- P3818 小A和uim之大逃离 II
题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...
- 洛古 P1373 小a和uim之大逃离
P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...
- 洛谷 P1373 小a和uim之大逃离
2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...
- 洛谷1373 小a和uim之大逃离
洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...
随机推荐
- Win8Metro(C#)数字图像处理--2.40二值图像轮廓提取
http://dongtingyueh.blog.163.com/blog/static/4619453201271481335630/ [函数名称] 二值图像轮廓提取 Contour ...
- Centos7.3 安装 OpenCV3.3.0
一开始会出现这个错误: CMake Error at CMakeLists.txt: (message): FATAL: In-source builds are not allowed. You s ...
- 前端端对端测试:基于PhantomJS的CasperJS
简介 Casperjs是一个基于PhantomJS和SlimerJS的前端端对端测试框架,当然你也可以使用它完成网络爬虫功能,它的特点的通过简单的脚本模拟浏览器行为, 主要有casper.tester ...
- Rabbitmq -- direct
一.前言 RabbitMQ还支持根据关键字发送,即:队列绑定关键字,发送者将数据根据关键字发送到消息exchange.direct类型的Exchange路由规则也很简单,它会把消息路由到那些bindi ...
- duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)
转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/42580877 之前我写的程序使用阴影时,一直是使用codeproject网站 ...
- shizhong
<script charset="Shift_JIS" src="http://chabudai.sakura.ne.jp/blogparts/honehonecl ...
- SpringBoot(五) :spring data jpa 的使用
原文出处: 纯洁的微笑 在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法 ...
- AngularJs附件上传下载
首先:angular-file-upload 是一款轻量级的 AngularJS 文件上传工具,为不支持浏览器的 FileAPI polyfill 设计,使用 HTML5 直接进行文件上传. 第一步: ...
- HDU 2827 高斯消元
模板的高斯消元.... /** @Date : 2017-09-26 18:05:03 * @FileName: HDU 2827 高斯消元.cpp * @Platform: Windows * @A ...
- HDU 5145 分块 莫队
给定n个数,q个询问[l,r]区间,每次询问该区间的全排列多少种. 数值都是30000规模 首先考虑计算全排列,由于有同种元素存在,相当于每次在len=r-l+1长度的空格随意放入某种元素即$\bin ...