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来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...
随机推荐
- HTML+CSS鼠标悬停效果
HTML+CSS实现鼠标悬停效果 HTML: <link href="style.css" rel="stylesheet"> <a clas ...
- HDU 2239 polya计数 欧拉函数
这题模数是9937还不是素数,求逆元还得手动求. 项链翻转一样的算一种相当于就是一种类型的置换,那么在n长度内,对于每个i其循环节数为(i,n),但是由于n<=2^32,肯定不能直接枚举,所有考 ...
- 使用Java代码发送SMTP邮件
package cn.Douzi.send; import javax.mail.Session; import javax.mail.Transport; import javax.mail.int ...
- Elasticsearch Java API 查询
一.查询的时候,需要建立一个SearchRequestBuilder,这里面将给出对于哪一个index或者type进行查询,并且所有的设置都可以在这里面进行实现,例如模糊查询,范围查询,前缀查询等. ...
- System Administrator(构造,图论)
System Administrator time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- Windows下搭建网络代理
场景:有些场景下会出现局域网内的某些网段可能由于安全限制,不能访问外网,此时可以通过安装一些工具来实现借助局域网内某些能够上外网的电脑来实现网络代理的功能.以下工具均是使用于Window环境. 服务端 ...
- Web 开发者易犯的5大严重错误
无论你是编程高手,还是技术爱好者,在进行Web开发过程中,总避免不了犯各种各样的错误. 犯了错误,可以改正.但如果犯了某些错误,则会带来重大损失.遗憾.令人惊讶的是,这些错误往往是最普通,最容易避免. ...
- ajax做显示信息以后用ajax、Bootstrp做弹窗显示信息详情
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- 51Nod - 1127 最短的包含字符串
给出一个字符串,求该字符串的一个子串s,s包含A-Z中的全部字母,并且s是所有符合条件的子串中最短的,输出s的长度.如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution. Inp ...
- three.js_camera相机
https://blog.csdn.net/yangnianbing110/article/details/51275927 文章地址