hdu 2757 Ocean Currents(优先队列+bfs)
小伙伴们真心被这道题惊呆了!刚开始是读题,题目都把小伙伴惊呆了,题目都读不懂!
在前面猴子小伙伴的帮助下,理解了一点点,又偷偷的在纸上写写画画,明白了题意!
后来,你懂的,果断拿下!在拿下的过程也经过一番厮杀,刚开始翻译惊现三十个错误,好吧,慢慢地找啊找,终于消灭所有错误,果断拿测试实例来测试,测试结果对的,果断提交上去,结果一个大大的Wrong Answer,又找啊,发现是自己的visit初始化问题,改了提交,终于出来了个Accepted;
题意:
这题首先给你一个表格,表格有0~7八种不同的数字,每种数字代表由该位置到一个特定的方向,由该位置到该位置上的数所指的方向的走一步,不消耗能量,如果不按该位置数所指的方向走,需消耗一个能量,题目要求求消耗最少的能量由起点到达终点,输出最少能量;
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
#define inf 99999999
struct node
{
int x,y,time;
friend bool operator<(node a,node b)
{
return a.time>b.time;
}
};
char map[1010][1010];
int visit[1010][1010];
int n,m;
int dir[8][2]={-1,0,-1,1,0,1,1,1,1,0,1,-1,0,-1,-1,-1};
int judge(int x,int y)
{
if(x>=1&&x<=n&&y>=1&&y<=m)
return 1;
return 0;
}
int bfs(int dx,int dy,int sx,int sy)
{
int j,a,b;
node i,o;
priority_queue<node>q;
i.x=dx;i.y=dy;
i.time=0;
q.push(i);
visit[dx][dy]=0;
while(!q.empty())
{
i=q.top();
q.pop();
a=i.x;
b=i.y;
if(a==sx&&b==sy)
return i.time;
for(j=0;j<8;j++)
{
o.x=dir[j][0]+i.x;
o.y=dir[j][1]+i.y;
if(!judge(o.x,o.y))
continue;
if(j==map[i.x][i.y]-'0')
o.time=i.time;
else
o.time=i.time+1;
if(visit[o.x][o.y]>o.time)
{
visit[o.x][o.y]=o.time;
q.push(o);
}
}
}
return 1;
}
int main()
{
int i,j,ans,t,dx,dy,sx,sy;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%s",map[i]+1);
scanf("%d",&t);
while(t--)
{
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
visit[i][j]=inf;
scanf("%d%d%d%d",&dx,&dy,&sx,&sy);
ans=bfs(dx,dy,sx,sy);
printf("%d\n",ans);
}
}
return 0;
}
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2757
hdu 2757 Ocean Currents(优先队列+bfs)的更多相关文章
- UVA 11573 - Ocean Currents(BFS+优先队列)
UVA 11573 - Ocean Currents 题目链接 题意:给定一个海面.数字分别代表海流方向,顺着海流不用费能量,逆海流要费1点能量,每次询问给一个起点一个终点,问起点到终点耗费的最小能量 ...
- hdu - 1242 Rescue && hdu - 2425 Hiking Trip (优先队列+bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=1242 感觉题目没有表述清楚,angel的朋友应该不一定只有一个,那么正解就是a去搜索r,再用普通的bfs就能过了 ...
- 【HDOJ】2757 Ocean Currents
简单BFS. /* 2757 */ #include <iostream> #include <queue> #include <cstdio> #include ...
- hdu 1026 Ignatius and the Princess I【优先队列+BFS】
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1026 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- HDU 2717 Catch That Cow --- BFS
HDU 2717 题目大意:在x坐标上,农夫在n,牛在k.农夫每次可以移动到n-1, n+1, n*2的点.求最少到达k的步数. 思路:从起点开始,分别按x-1,x+1,2*x三个方向进行BFS,最先 ...
- ZOJ 649 Rescue(优先队列+bfs)
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 【POJ3635】Full Tank 优先队列BFS
普通BFS:每个状态只访问一次,第一次入队时即为该状态对应的最优解. 优先队列BFS:每个状态可能被更新多次,入队多次,但是只会扩展一次,每次出队时即为改状态对应的最优解. 且对于优先队列BFS来说, ...
- Codeforces 677D - Vanya and Treasure - [DP+优先队列BFS]
题目链接:http://codeforces.com/problemset/problem/677/D 题意: 有 $n \times m$ 的网格,每个网格上有一个棋子,棋子种类为 $t[i][j] ...
- POJ 2449 - Remmarguts' Date - [第k短路模板题][优先队列BFS]
题目链接:http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Description "Good m ...
随机推荐
- addChildViewController ipad 中Controller的嵌套和叠加
1.addChildViewController 在 base controller中添加子的controller,会自动调用子的controller中viewDidload,viewWillAppe ...
- perl5 第二章 简单变量
第二章 简单变量 by flamephoenix 一.整型 二.浮点数 三.字符串 基本上,简单变量就是一个数据单元,这个单元可以是数字或字符串.一.整型 1.整型 PERL最常用的简单变量,由 ...
- python的正则表达式 re
python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一 ...
- CERC 2013 Magical GCD
题目大意如下:给定一个序列,每个序列有值xi,现给定t个数列,对于每个长n的数列,求一段[l,r]使 [r-l+1]*gcd(l,r)最大,gcd(l,r)指的是该连续区间的最大公约数. 不难想到n^ ...
- 快速注册Uber司机,兼职月入轻松过万
Uber是世界领先的即时用车网络平台.当前部分中国城市,Uber司机只需每周完成70单,可获得7000元的激励制度回报司机,月收入近3万元.[加入条件]1. 车辆为本地牌照2. 车龄在5年以内3. 裸 ...
- Spring MVC遭遇checkbox的问题解决方式
Spring MVC遭遇checkbox的问题是:当checkbox全不选时候,则该checkbox域的变量为null,不能动态绑定到spring的controller方法的入參上,并抛出异常. 解决 ...
- Boost.Asio基础(五) 异步编程初探
异步编程 本节深入讨论异步编程将遇到的若干问题.建议多次阅读,以便吃透这一节的内容,这一节是对整个boost.asio来说是非常重要的. 为什么须要异步 如前所述,通常同步编程要比异步编程更简单.同步 ...
- 「C」 函数、运算、流程控制
一.函数 (一)什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”. (二)函数的定义 目的:将一个常用的功能封装起来,方 ...
- jbpmAPI-1
1.1. What is jBPM? jBPM是一个灵活的业务流程管理(BPM)套件.它是轻量级的,完全开源Apache许可下(分布式),用Java编写的.它允许您模型.执行和监控业务流程的整个生命周 ...
- Spring配置文件模板
模板: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://ww ...