首先 在此哀悼。。。  为我逝去的时间哀悼。。。  每一步都确定再去写下一步吧。。。日狗

不过还是有点收获的。。  对优先队列的使用 有了进一步的理解

先上代码

#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 ~!!!!!!坑死我的更多相关文章

  1. 【Python3爬虫】百度一下,坑死你?

    一.写在前面 这个标题是借用的路人甲大佬的一篇文章的标题(百度一下,坑死你),而且这次的爬虫也是看了这篇文章后才写出来的,感兴趣的可以先看下这篇文章. 前段时间有篇文章<搜索引擎百度已死> ...

  2. HDU 2822 (BFS+优先队列)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2822 题目大意:X消耗0,.消耗1, 求起点到终点最短消耗 解题思路: 每层BFS的结点,优先级不同 ...

  3. hdu 2822 Dogs

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2822 Dogs Description Prairie dog comes again! Someda ...

  4. hdu - 2822 Dogs (优先队列+bfs)

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

  5. 一些Layout的坑。坑死我自己了

    iOS这个东西,初学感觉,还好还好,然后一年之后再来修复一下初学的时候的代码,我只是感觉头很晕- - 别扶我. AutoLayout的坑,明明以前都没有的!!!升了iOS10就突然发现了这个坑,其实也 ...

  6. JQuery中动态生成元素的绑定事件(坑死宝宝了)

    今天在做项目的时候,遇到了一个前端的问题,坑了我好长时间没有解决,今天就记录于此,也分享给大家. 问题是这样的,首先看看我的界面,有一个初始印象: 下面是操作列所对应的JS代码: { "da ...

  7. ZOJ问题(坑死了)

    ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. 那些年,坑死自己的事之fread/fwrite

    今天继续看牛人做过的东西,这个小程序并不大,加上相当多的注释行,才5000多行.这个小程序是在linux下实现的,之前自己也一直用vi来看并加以更加详细的注释,但是效率实在太低.于是将其转移到wind ...

  9. 坑死我啊,一个WPF Adorner使用注意事项

    1.见鬼了? 项目中遇到这样的要求,一个Button用一个Adorner装饰,这个Adorner上又有一个Button,如下面这样 此时,我们在点击小Button的时候只希望处理小Button的事件, ...

随机推荐

  1. python 与开源Gis 书本知识点测试

    # -*- coding: utf-8 -*- print(u"python与开源QGis课题研究组")#print("汉字") #++++++++++++++ ...

  2. win7 激活码 秘钥

    019.06最新windows7旗舰版系统激活码: 目前市面上的win7旗舰版激活码大部分都已经过期或失效了,下面来分享一些最新的. win7旗舰版激活密钥: BG2KW-D62DF-P4HY6-6J ...

  3. CentOS 7 配置 nginx php-fpm 详细教程

    CentOS 7 配置 Nginx 的步骤如下: 首先更新 yum,没有安装 yum 的自行安装 yum update 1. 安装 Nginx yum install nginx 开启 Nginx 并 ...

  4. vmware配置双网卡

    最近在学习使用iptables做网关服务器,即SNAT设置 我们的宿主机有两块网卡,地址分别是: 192.168.6.108/24 192.168.66.119/24 我们的目标是在虚拟机VMware ...

  5. 一起入门Python1之python的介绍

    之前在某安全论坛发表的一些关于python的文章,但是由于一些问题一直没有完成,那个论坛也歇菜了.放到这儿来吧. 说句默心掏肺的话,我也是才学习python.之所以要这个版主,是为了锻炼自己,也是为了 ...

  6. flutter Slider滑块组件

    滑块,允许用户通过滑动滑块来从一系列值中选择. import 'package:flutter/material.dart'; class SliderDemo extends StatefulWid ...

  7. flutter Sliver滑动视图组件

    import 'package:flutter/material.dart'; import './model/post.dart'; class SliverDemo extends Statele ...

  8. 【转】把sqlite3数据导入到MySQL中

    之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据.如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去. 1.SQLit ...

  9. ES6深入浅出-6 ES 6 模块-1.模块化速学

    把模块先默认认为是豆腐块 为什么前端需要模块? 没有模块的方式 预览这个html页面     一共200行js代码 前100行在做一件事 ,另外100行在做另一件事,这样就是两个模块 main.js来 ...

  10. Elasticsearch服务器开发(第2版).pdf 含目录

    Elasticsearch服务器开发(第2版) 介绍: <Elasticsearch服务器开发(第2版)>这一版针对Elasticsearch的新版本更新了内容,增加了第1版中遗漏的重要内 ...