题目地址

  为判断某时刻能否走到某位置,建立shi数组,记录某位置最早t时刻就不能走。(初始化为-1)之后开始从(0,0)出发bfs,用bu数组记录走到某一位置时花费的步数,并且需要用vi数组记录是否走到过某个位置,不然慧反复走出错。注意可走的范围是第一象限,只是输入的陨石掉落位置是0——300。(之前因为这个判断位置是否合法WA了……)。

  参考代码:

  

 #include<cstdio>
#include<cstring>
#include<queue>
#include <iostream>
using namespace std;
int shi[][],m,bu[][],dir[][]={{,},{-,},{,},{,-}};
bool vi[][];
typedef pair<int ,int >P;
int si,sj,t;
int bfs()
{
queue<P> que;
P p;
que.push(P(,));
while(que.size())
{
p=que.front();
que.pop();
if(shi[p.first][p.second]==-)
return bu[p.first][p.second];
int i,xx,yy;
for(i=;i<;i++)
{
xx=p.first+dir[i][];
yy=p.second+dir[i][];
if(xx>=&&xx<=&&yy>=&&yy<=&&(shi[xx][yy]==-||bu[p.first][p.second]+<shi[xx][yy])&&!vi[xx][yy])
{
que.push(P(xx,yy));
bu[xx][yy]=bu[p.first][p.second]+;
vi[xx][yy]=true;
}
}
}
return -;
}
int main()
{
memset(shi,-,sizeof(shi));
memset(bu,,sizeof(bu));
memset(vi,false,sizeof(vi));
scanf("%d",&m);
int i,an;
while(m--)
{
scanf("%d%d%d",&si,&sj,&t);
if(shi[si][sj]==-||shi[si][sj]>t)
shi[si][sj]=t;
for(i=;i<;i++)
{
int xx,yy;
xx=si+dir[i][];
yy=sj+dir[i][];
if(xx>=&&xx<=&&yy>=&&yy<=&&(shi[xx][yy]>t||shi[xx][yy]==-))
shi[xx][yy]=t;
}
}
vi[][]=true;
an=bfs();
printf("%d\n",an);
return ;
}

(BFS)poj3669-Meteor Shower的更多相关文章

  1. poj3669 Meteor Shower(BFS)

    题目链接:poj3669 Meteor Shower 我只想说这题WA了后去看讨论才发现的坑点,除了要注意原点外,流星范围题目给的是[0,300],到302的位置就绝对安全了... #include& ...

  2. 深搜(DFS)广搜(BFS)详解

    图的深搜与广搜 一.介绍: p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orp ...

  3. 【算法导论】图的广度优先搜索遍历(BFS)

    图的存储方法:邻接矩阵.邻接表 例如:有一个图如下所示(该图也作为程序的实例): 则上图用邻接矩阵可以表示为: 用邻接表可以表示如下: 邻接矩阵可以很容易的用二维数组表示,下面主要看看怎样构成邻接表: ...

  4. 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现

    1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...

  5. 【BZOJ5492】[HNOI2019]校园旅行(bfs)

    [HNOI2019]校园旅行(bfs) 题面 洛谷 题解 首先考虑暴力做法怎么做. 把所有可行的二元组全部丢进队列里,每次两个点分别向两侧拓展一个同色点,然后更新可行的情况. 这样子的复杂度是\(O( ...

  6. 深度优先搜索(DFS)和广度优先搜索(BFS)

    深度优先搜索(DFS) 广度优先搜索(BFS) 1.介绍 广度优先搜索(BFS)是图的另一种遍历方式,与DFS相对,是以广度优先进行搜索.简言之就是先访问图的顶点,然后广度优先访问其邻接点,然后再依次 ...

  7. 图的 储存 深度优先(DFS)广度优先(BFS)遍历

    图遍历的概念: 从图中某顶点出发访遍图中每个顶点,且每个顶点仅访问一次,此过程称为图的遍历(Traversing Graph).图的遍历算法是求解图的连通性问题.拓扑排序和求关键路径等算法的基础.图的 ...

  8. 数据结构与算法之PHP用邻接表、邻接矩阵实现图的广度优先遍历(BFS)

    一.基本思想 1)从图中的某个顶点V出发访问并记录: 2)依次访问V的所有邻接顶点: 3)分别从这些邻接点出发,依次访问它们的未被访问过的邻接点,直到图中所有已被访问过的顶点的邻接点都被访问到. 4) ...

  9. 层层递进——宽度优先搜索(BFS)

    问题引入 我们接着上次“解救小哈”的问题继续探索,不过这次是用宽度优先搜索(BFS). 注:问题来源可以点击这里 http://www.cnblogs.com/OctoptusLian/p/74296 ...

  10. HDU.2612 Find a way (BFS)

    HDU.2612 Find a way (BFS) 题意分析 圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车.百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个...坤 ...

随机推荐

  1. react native改变app的图标和名称

    beauty\android\app\src\main\res

  2. 文本数据源Fields Format

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. PCA9554

    参考资料: 1. Texas Instruments PCA9554简介 2. PCA9554文档下载 3. PCA9554 Data Sheet 知识点: ● PCA9554是具有中断输出和配置寄存 ...

  4. Scrum Meeting 14-20151227

    说明 这几天我们代码人员一直在做数据库,没有来得及更新博客,从明天开始将会正常做scrum meeting,也将加快开发 工作,预计beta版本将会在12.30之前发布. 摘要 目前基本开发都已经做的 ...

  5. web前端网站收藏

    参考 w3school:html,css,js等各种参考 W3schools:较之w3school界面更华丽 webplatform:学习最新的web技术 MDN:mozilla developer ...

  6. 特许金融分析师 (CFA) 持证人现在一般在做什么工作?职业分布是怎样的?

    特许金融分析师 (CFA) 持证人现在一般在做什么工作?职业分布是怎样的?  陈雨桐 1. 全球范围: 根据 CFA 协会 2014 年 6 月的报告: CFA Institute has over ...

  7. c语言练习

    #include<stdio.h> struct student{ ]; int No; ]; int sum; }; int strcmp(char *s, char *t) { int ...

  8. YYYY-mm-dd HH:MM:SS

    备忘:YYYY-mm-dd HH:MM:SS部分解释 d               月中的某一天.一位数的日期没有前导零.    dd             月中的某一天.一位数的日期有一个前导零 ...

  9. 附加类型的实体失败,因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值

    var list= DAL.LoadEntities(x => x.OrderCode == orderCode).AsNoTracking().ToList().FirstOrDefault( ...

  10. vCSA加域&vcenter关联域&设置管理员权限

    vCSA 与 Windows vCenter对比 1.部署起来更简单快捷. 2.vCSA基于Linux授权费用节省. 3.功能在6.0之后达到与Windows vCenter一样的功能,之后可能会反超 ...