HDU 2822 (BFS+优先队列)

时间:2022-09-25 19:53:53

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2822

题目大意:X消耗0,.消耗1, 求起点到终点最短消耗

解题思路

每层BFS的结点,优先级不同,应该先搜cost小的。直接退化为最短路问题。

优先队列优化。

卡输入姿势。如果O(n^2)逐个读的话会T掉。要用字符串读一行。

#include "cstdio"
#include "queue"
#include "cstring"
using namespace std;
#define maxn 1005
bool vis[maxn][maxn];
char map[maxn][maxn];
int n,m,dir[][]={-,,,,,-,,},sx,sy,ex,ey;
struct status
{
int x,y,dep;
status(int x,int y,int dep):x(x),y(y),dep(dep) {}
bool operator < (const status &a) const {return dep>a.dep;}
};
int bfs()
{
priority_queue<status> Q;Q.push(status(sx,sy,));
vis[sx][sy]=true;
while(!Q.empty())
{
status t=Q.top();Q.pop();
for(int s=;s<;s++)
{
int X=t.x+dir[s][],Y=t.y+dir[s][];
if(X<||X>n||Y<||Y>m||vis[X][Y]) continue;
int cost=map[X][Y]=='.'?:;
if(X==ex&&Y==ey) return t.dep+cost;
vis[X][Y]=true;
Q.push(status(X,Y,t.dep+cost));
}
}
return -;
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d%d",&n,&m)&&n)
{
memset(vis,,sizeof(vis));
for (int i=;i<=n;i++) scanf("%s",map[i]+);
scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
int ans=bfs();
printf("%d\n",ans);
}
}

HDU 2822 (BFS+优先队列)的更多相关文章

  1. hdu - 2822 Dogs &lpar;优先队列&plus;bfs&rpar;

    http://acm.hdu.edu.cn/showproblem.php?pid=2822 给定起点和终点,问从起点到终点需要挖几次只有从# 到 .或者从. 到  . 才需要挖一次. #includ ...

  2. hdu 1242&lpar;BFS&plus;优先队列)

    Rescue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  3. HDU 1428 漫步校园 &lpar;BFS&plus;优先队列&plus;记忆化搜索&rpar;

    题目地址:HDU 1428 先用BFS+优先队列求出全部点到机房的最短距离.然后用记忆化搜索去搜. 代码例如以下: #include <iostream> #include <str ...

  4. HDU 1242 -Rescue &lpar;双向BFS)&amp&semi;amp&semi;&amp&semi;amp&semi;( BFS&plus;优先队列&rpar;

    题目链接:Rescue 进度落下的太多了,哎╮(╯▽╰)╭,渣渣我总是埋怨进度比别人慢...为什么不试着改变一下捏.... 開始以为是水题,想敲一下练手的,后来发现并非一个简单的搜索题,BFS做肯定出 ...

  5. hdu 2102 A计划 具体题解 (BFS&plus;优先队列)

    题目链接:pid=2102">http://acm.hdu.edu.cn/showproblem.php?pid=2102 这道题属于BFS+优先队列 開始看到四分之中的一个的AC率感 ...

  6. hdu 1242 找到朋友最短的时间 &lpar;BFS&plus;优先队列&rpar;

    找到朋友的最短时间 Sample Input7 8#.#####. //#不能走 a起点 x守卫 r朋友#.a#..r. //r可能不止一个#..#x.....#..#.##...##...#.... ...

  7. hdu 5025 bfs&plus;状压

    http://acm.hdu.edu.cn/showproblem.php?pid=5025 N*N矩阵 M个钥匙 K起点,T终点,S点需多花费1点且只需要一次,1-9表示9把钥匙,只有当前有I号钥匙 ...

  8. BFS&plus;优先队列&plus;状态压缩DP&plus;TSP

    http://acm.hdu.edu.cn/showproblem.php?pid=4568 Hunter Time Limit: 2000/1000 MS (Java/Others)    Memo ...

  9. POJ 1724 ROADS&lpar;BFS&plus;优先队列&rpar;

    题目链接 题意 : 求从1城市到n城市的最短路.但是每条路有两个属性,一个是路长,一个是花费.要求在花费为K内,找到最短路. 思路 :这个题好像有很多种做法,我用了BFS+优先队列.崔老师真是千年不变 ...

随机推荐

  1. 【每日scrum】NO&period;5

    尝试采用自己的地图,绘点并计算路径,但是地图打开出现问题.

  2. 第九篇 ERP实施项目中需求分析及方案设计的通用思路

    顾问实施ERP就好想医生给患者看病抓药,不但具有类似的过程,而且具有其通用的思路. --详见http://bbs.erp100.com/thread-272856-1-1.html 顾问实施ERP就好 ...

  3. 硬盘4k对齐教程总结

    4k对齐概念: 4K对齐相关联的是一个叫做“高级格式化”的分区技术.首先先来了解一下什么是叫做“4K 对齐”.其实“4K对齐”相关联的是一个叫做“高级格式化”的分区技术.“高级格式化”是国际硬盘设备与 ...

  4. 用户体验设置和UI设计的10个不同点

    在这个技术的世界,UX和UI这两个词条在差点儿全部公司都非常流行,不管大小,都在寻找招聘UX/UI设计师. 这两个缩写词条使得整个技术工业为之疯狂,由于它们是最先进的前沿技术. 那这两个词条实际上是什 ...

  5. &lbrack;半原创&rsqb;指纹识别&plus;谷歌图片识别技术之C&plus;&plus;代码

    原地址:http://blog.csdn.net/guoming0000/article/details/8138223 以前看到一个http://topic.csdn.net/u/20120417/ ...

  6. git生成ssh key及github ssh key对接

    首先在本地安装好git工具并配置好环境变量 创建一个文件夹,在此处打开git bash: 命令>cd ~/.ssh  查看是否已经配置ssh 命令>git config --global ...

  7. Porsche Piwis Tester II V15&period;6 with CF30 Laptop or Lenovo E49AL Laptop

    Some of my customers let me recommended which auto diagnostic tool is good for Porsche , I recommend ...

  8. java反射2

    package com.wen; import java.lang.reflect.Field;import java.lang.reflect.Method; public class Test2 ...

  9. java基础六 [异常处理](阅读Head First Java记录)

    在程序运行时,我们不能保证所有服务和方法都是正确的,如果发生问题报错会导致程序崩溃,所以需要对一些可以预见的错误进行异常处理,通过throw去抛出一个异常,然后用try..catch..将要执行的该方 ...

  10. WPF应用的一些小总结(模板、样式,上下文)

    1: 后台:XXX.DataContext = ViewModel(数据对象)(XXX可以是当前的UserControl.Windows.Grid.TextBlock.Lable等UI控件,选择不同的 ...