hdu 2822 ~!!!!!!坑死我
首先 在此哀悼。。。 为我逝去的时间哀悼。。。 每一步都确定再去写下一步吧。。。日狗
不过还是有点收获的。。 对优先队列的使用 有了进一步的理解
先上代码
#include<iostream>
#include<cstdio>
#include<queue>
#include<string.h>
using namespace std;
int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
char mapp[1001][1001];
int vis[1001][1001],n,m,sx,sy,ex,ey;
struct node
{
int x,y;
int time;
friend bool operator < (node a,node b)
{
return a.time>b.time;
}
};
int bfs()
{
int i,j;
priority_queue<node> q;
memset(vis,0,sizeof(vis));
vis[sx][sy]=1;
node t,stu;
stu.x=sx;
stu.y=sy;
stu.time=0;
q.push(stu);
while(!q.empty())
{
t=q.top();
q.pop();
if(t.x == ex&&t.y == ey) return t.time;
for(i=0;i<4;i++)
{
stu.x=t.x+dir[i][0];
stu.y=t.y+dir[i][1];
if(vis[stu.x][stu.y]==1||stu.x<=0||stu.x>n||stu.y<=0||stu.y>m) continue;
vis[stu.x][stu.y]=1;
if(mapp[stu.x][stu.y]=='.')
{
stu.time=t.time+1;
// cout<<stu.x<<' '<<stu.y<<endl;
}
else stu.time=t.time;
// if(mapp[stu.x][stu.y]=='X') stu.tmp=1;
q.push(stu);
}
}
return 0;
}
int main()
{
while(~scanf("%d %d",&n,&m))
{
if(n==0||m==0) break;
int i,j;
for(i=1;i<=n;i++)
{
scanf("%s",mapp[i]+1);////这里比较重要 注意题目给的题目于自己写的地图的位置关系(这里相当于指针的应用。。)
}
scanf("%d %d",&sx,&sy);
scanf("%d %d",&ex,&ey);
printf("%d\n",bfs());
}
return 0;
}
总的来说 对于优先队列的有了更深的理解 (按权优先的策略 后来的点的位置可能更前)
hdu 2822 ~!!!!!!坑死我的更多相关文章
- 【Python3爬虫】百度一下,坑死你?
一.写在前面 这个标题是借用的路人甲大佬的一篇文章的标题(百度一下,坑死你),而且这次的爬虫也是看了这篇文章后才写出来的,感兴趣的可以先看下这篇文章. 前段时间有篇文章<搜索引擎百度已死> ...
- HDU 2822 (BFS+优先队列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2822 题目大意:X消耗0,.消耗1, 求起点到终点最短消耗 解题思路: 每层BFS的结点,优先级不同 ...
- hdu 2822 Dogs
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2822 Dogs Description Prairie dog comes again! Someda ...
- hdu - 2822 Dogs (优先队列+bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=2822 给定起点和终点,问从起点到终点需要挖几次只有从# 到 .或者从. 到 . 才需要挖一次. #includ ...
- 一些Layout的坑。坑死我自己了
iOS这个东西,初学感觉,还好还好,然后一年之后再来修复一下初学的时候的代码,我只是感觉头很晕- - 别扶我. AutoLayout的坑,明明以前都没有的!!!升了iOS10就突然发现了这个坑,其实也 ...
- JQuery中动态生成元素的绑定事件(坑死宝宝了)
今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家. 问题是这样的,首先看看我的界面,有一个初始印象: 下面是操作列所对应的JS代码: { "da ...
- ZOJ问题(坑死了)
ZOJ问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 那些年,坑死自己的事之fread/fwrite
今天继续看牛人做过的东西,这个小程序并不大,加上相当多的注释行,才5000多行.这个小程序是在linux下实现的,之前自己也一直用vi来看并加以更加详细的注释,但是效率实在太低.于是将其转移到wind ...
- 坑死我啊,一个WPF Adorner使用注意事项
1.见鬼了? 项目中遇到这样的要求,一个Button用一个Adorner装饰,这个Adorner上又有一个Button,如下面这样 此时,我们在点击小Button的时候只希望处理小Button的事件, ...
随机推荐
- GRU和LSTM比较
比较: https://www.jianshu.com/p/3774d46b665e https://blog.csdn.net/sinat_33741547/article/details/8282 ...
- leetcode 384. Shuffle an Array
384. Shuffle an Array c++ random函数:https://www.jb51.net/article/124108.htm rand()不需要参数,它会返回一个从0到最大随机 ...
- System.MarshallByRefObject.cs
ylbtech-System.MarshallByRefObject.cs 允许在支持远程处理的应用程序中跨应用程序域边界访问对象. 1.返回顶部 1. #region 程序集 mscorlib, V ...
- Nginx之https配置 - 运维笔记 (http->https强转)
一.Nginx安装(略)安装的时候需要注意加上 --with-http_ssl_module,因为http_ssl_module不属于Nginx的基本模块.Nginx安装方法: # ./configu ...
- 七、postman-request methods
一.一些常见的请求方法 GET POST PUT DELETE PATCH
- 【Java】分布式自增ID算法---雪花算法 (snowflake,Java版)
一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式.UUID.雪花算法. 方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID.这种呢,优点是可以体现全局的递增 ...
- 【DataBase】H2 DateBase与项目集成
本例介绍H2与web项目的集成 项目启动H2数据库 1.新建Maven Web项目,参考:[Maven]Eclipse 使用Maven创建Java Web项目 2.引入h2的jar包依赖 <de ...
- Qt bug
1.Qt5.2.1不支持QQuickwidget来承载qml 2.Qt5.12以及以上,不支持跨线程调用数据库连接 3.线程A不断产生sql语句,需要让两个数据库分别执行这个sql语句.所以在线程A中 ...
- Laya发布微信小游戏项目
版本2.1.1.1 创建项目时,勾选微信/百度小游戏bin目录快速调试 发布项目时,选择发布平台为微信小游戏 用微信开发者工具打开release/wxgame,这就是微信小游戏项目了,很方便
- JAVA协程 纤程 与Quasar 框架
ava使用的是系统级线程,也就是说,每次调用new Thread(....).run(),都会在系统层面建立一个新的线程,然鹅新建线程的开销是很大的(每个线程默认情况下会占用1MB的内存空间,当然你愿 ...