题意:

有个**要看流星雨,可是流星雨会砸死他的。。。

给出n个流星雨下落的坐标,时间,如果那个**在下落坐标或是上下左右就会gg,问你他最短跑到流星雨打不到的地方的时间。

思路:

①:预处理出一个矩阵,每个坐标代表最早下落时间;

②:直接bfs…中间要标记掉走到的坐标,不能往回走,还是满基础的。

贴一发挫code………….

#include<cstdio>
#include<map>
#include<queue>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define eps 1e-8
typedef __int64 LL; const int INF=-1;
const int N=304; int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
bool vis[N][N];
int ma[N][N];
int n; bool Judge(int x,int y)
{
if(x<0||y<0||x>=302||y>=302)
return 0;
return 1;
} void Init()
{
int x,y,t;
memset(ma,-1,sizeof(ma)); for(int i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&t);
if(ma[x][y]==-1)
ma[x][y]=t;
else
ma[x][y]=min(t,ma[x][y]);
for(int k=0;k<4;k++)
{
int xx=x+dx[k];
int yy=y+dy[k];
if(Judge(xx,yy))
{
if(ma[xx][yy]==-1)
ma[xx][yy]=t;
else
ma[xx][yy]=min(t,ma[xx][yy]);
}
}
}
}
struct asd{
int x,y;
int step;
};
asd now,next;
queue<asd>q;
int bfs()
{
int x,y,tp;
while(!q.empty())
q.pop();
memset(vis,0,sizeof(vis));
now.x=0;
now.y=0;
now.step=0;
vis[0][0]=1;
q.push(now);
while(!q.empty())
{
now=q.front();q.pop();
x=now.x;
y=now.y;
tp=now.step;
if(ma[x][y]==-1)
return tp;
for(int i=0;i<4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
next.x=xx;
next.y=yy;
next.step=tp+1;
if(!Judge(xx,yy)||vis[xx][yy])
continue;
if(ma[xx][yy]==-1)
return next.step;
if(next.step>=ma[xx][yy])
continue;
vis[xx][yy]=1;
q.push(next);
}
}
return -1;
} int main()
{
scanf("%d",&n);
Init();
int ans;
ans=bfs();
printf("%d\n",ans);
return 0;
}

poj3669【bfs】的更多相关文章

  1. 【bfs】抓住那头牛

    [题目] 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000).农夫有两种移动方式: 1.从X移动到X-1或X+1,每次 ...

  2. 【bfs】拯救少林神棍(poj1011)

    Description 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位.然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度.请你 ...

  3. 【bfs】Knight Moves

    [题目描述] 输入nn代表有个n×nn×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步. [输入] 首先输入一个nn,表示测试样例 ...

  4. 【bfs】1252 走迷宫

    [题目描述] 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走. 给定一个迷宫,求从左上角走到右下角最少需要走多少步(数据保证一定能走到).只能在水平方向或垂直方向走,不 ...

  5. 【bfs】献给阿尔吉侬的花束

    [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫.今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪.现在研究员们想 ...

  6. 【bfs】迷宫问题

    [题目描述] 定义一个二维数组: int maze[5][5] = { 0,1,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,1,0, }; 它表示一个迷 ...

  7. 【bfs】仙岛求药

    [题目描述] 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶.叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处.迷阵由M×N个方格组成,有的 ...

  8. 【bfs】BZOJ1102- [POI2007]山峰和山谷Grz

    最后刷个水,睡觉去.Bless All! [题目大意] 给定一个地图,为FGD想要旅行的区域,地图被分为n*n的网格,每个格子(i,j) 的高度w(i,j)是给定的.若两个格子有公共顶点,那么他们就是 ...

  9. poj3278-Catch That Cow 【bfs】

    http://poj.org/problem?id=3278 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

随机推荐

  1. 如何推断一个P2P平台是否靠谱?

    推断一个站点,是否靠谱.是有规律可循的.P2P平台算是个新兴的电商类站点.   网上欺诈类的站点.不限于P2P,实在是太多了,真的有必要总结下最关键的几个靠谱指标.   最关键的2个   1.创始人和 ...

  2. PCA主成分分析Python实现

    作者:拾毅者 出处:http://blog.csdn.net/Dream_angel_Z/article/details/50760130 Github源代码:https://github.com/c ...

  3. CMS - tabBar

    Tips:如果网页图片(文字)看不清,请按CTRL+鼠标滚轮 1.建议使用阿里图库 或者 easyicon 2.建议使用81*81且低于40KB的图片(建议jpg) 3.如需查看脑图结构,请点击:ta ...

  4. XMLHTTPRequest DEMO(发送测试)

    对于其中的HTTP状态,我们知道200-299表明访问成功:300-399表明需要客户端 反应来满足请求:400-499和500-599表明客户端和服务器出错:其中常用的如404表示资源没找到,403 ...

  5. [Elasticsearch] 部分匹配 (四) - 索引期间优化ngrams及索引期间的即时搜索

    本章翻译自Elasticsearch官方指南的Partial Matching一章. 索引期间的优化(Index-time Optimizations) 眼下我们讨论的全部方案都是在查询期间的.它们不 ...

  6. Codeforces Round #422 (Div. 2) D. My pretty girl Noora 数学

    D. My pretty girl Noora     In Pavlopolis University where Noora studies it was decided to hold beau ...

  7. ArchLinux最小化安装 必备库 常用命令

    铸成强大的工作站环境——ArchLinux最小化安装 所有问题归结起来,只是一个问题:ArchLinux最小化安装,需要安装哪些包? 1.bash//最基本的Bash Shell(必须)2.bzip2 ...

  8. MapReduce算法形式二:去重(HashSet)

    案例二:去重(shuffle/HashSet等方法)shuffle主要针对的是key去重HashSet主要针对values去重

  9. bash shell中的特殊用法

    1 ${BASH_SOURCE-$0} 表示当前正在执行的脚本的完整路径. 2 cd -P 以物理路径进入 /usr/localhadoop现在链到/home/houzhizhen/usr/local ...

  10. JasperReport 中文问题解决

    1 运行环境    1.1 JasperReport 3.5    JasperReports 是iReport的核心内容.它是一个强有力的开源报表产生工具,可以将内容输出到屏幕上.打印机或生成PDF ...