POJ-3669-流星雨
这题的话,卡了有两个小时左右,首先更新地图的时候越界了,我们进行更新的时候,要判断一下是不是小于零了,越界就会Runtime Error。
然后bfs 的时候,我没有允许它搜出300以外的范围,然后就在300以内搜,然后就错了,实际上题目的意思是流星雨的轰炸范围是0~300,然后我就把世界理解成了300,哼,英文很烂,难受。
所以地图开的大一点,然后直接搜就可以了,这题的思路还是好想的。
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int INF = 0x3f3f3f3f;
int map[305][305];
int vis[305][305];
int d[5][2] = {{0, 0}, {1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int m;
struct Step {
    int x, y, t;
    Step(int a,int b,int c):x(a),y(b),t(c){}
};
int bfs()
{
    if (!map[0][0])
        return INF;
    vis[0][0] = 1;
    queue<Step> q;
    q.push(Step(0, 0, 0));
    while (!q.empty()) {
        Step now = q.front();
        if (map[now.x][now.y]==INF)
            return now.t;
        for (int i = 1; i < 5;i++) {
            int dx = now.x + d[i][0];
            int dy = now.y + d[i][1];
            if (dx>=0&&dy>=0&&map[dx][dy]>now.t+1&&!vis[dx][dy]) {
                vis[dx][dy]=1;
                q.push(Step(dx, dy, now.t + 1));
            }
        }
        q.pop();
    }
    return INF;
}
int main()
{
    int x, y, t;
    while (scanf("%d",&m)!=EOF) {
        memset(map, INF, sizeof(map));
        memset(vis, 0, sizeof(vis));
        while (m--) {
            scanf("%d%d%d", &x, &y, &t);
            for (int i = 0; i < 5;i++) {
                int dx = x + d[i][0];
                int dy = y + d[i][1];
                if (dx>=0&&dy>=0&&t<map[dx][dy]) {
                	map[dx][dy]=t;
				}
            }
        }
        int min=bfs();
        printf("%d\n", min == INF ? -1 : min);
    }
    return 0;
}
												
											POJ-3669-流星雨的更多相关文章
- POJ 3669 Meteor Shower(流星雨)
		
POJ 3669 Meteor Shower(流星雨) Time Limit: 1000MS Memory Limit: 65536K Description 题目描述 Bessie hears ...
 - POJ 3669 Meteor Shower【BFS】
		
POJ 3669 去看流星雨,不料流星掉下来会砸毁上下左右中五个点.每个流星掉下的位置和时间都不同,求能否活命,如果能活命,最短的逃跑时间是多少? 思路:对流星雨排序,然后将地图的每个点的值设为该点最 ...
 - 【POJ 3669 Meteor Shower】简单BFS
		
流星雨撞击地球(平面直角坐标第一象限),问到达安全地带的最少时间. 对于每颗流星雨i,在ti时刻撞击(xi,yi)点,同时导致(xi,yi)和上下左右相邻的点在ti以后的时刻(包括t)不能再经过(被封 ...
 - 广搜最短路(最短时间到达目的地),POJ(3669)
		
题目链接:http://poj.org/problem?id=3669 解题报告: 1.流星坠落的点,四周和自己本身都被毁灭,不断更新每个点被毁灭的时候的最短时间. 2.搜索终点是,到达某个点,这个不 ...
 - POJ 3669 Meteor Shower BFS 水~
		
http://poj.org/problem?id=3669 题目大意: 一个人从(0,0)出发,这个地方会落下陨石,当陨石落在(x,y)时,会把(x,y)这个地方和相邻的的四个地方破坏掉,求该人到达 ...
 - BFS:Meteor Shower(POJ 3669)
		
奔跑吧,傻牛 题目大意:这只Bessie的牛又要来闹事了,这次她的任务就是来躲流星雨,流星雨就是在一定时间会从天上砸到Bessie的所在的正方形区域内(Bessie在0,0的位置),然后砸下 ...
 - poj 3669 Meteor Shower
		
Me ...
 - POJ 3669 广度优先搜索
		
题意:巨大流星雨即将袭来.每个流星会对击中的地方以及周围(上下左右四格)造成破坏.Bessie开始时位于(0, 0)位置,并希望逃到一处不会被袭击到的地方(在第一象限内).已知每移动一格需要1个时间单 ...
 - poj 3669 Meteor Shower(bfs)
		
Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteo ...
 - POJ 3669 Meteor Shower (BFS+预处理)
		
Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteo ...
 
随机推荐
- 请写出JAVA弹栈压栈的步骤, 栈的存储方式
			
一.栈的作用 1. 栈的存放 局部变量 堆中对象的引用(对象在堆内存中的地址) 一个对象的大小无法估计,但是一个对象的引用只占4byte 基本数据类型的变量没有什么存储区域的说法,内存中分为两 ...
 - 关于如何隐藏UITabbar的问题
			
关于如何隐藏UITabbar的问题,曾经困扰过很多人. 1,设为Hidden, 这种方法虽然将TabBar隐藏掉,但是下面是一片空白,没有起到隐藏的实际功效 2,设置tabbar.frame = CG ...
 - Eclipse开发MR环境搭建
			
1.jdk环境配置 jdk安装后好后配置相关JAVA_HOME环境变量,并将bin目录配置到path 2. 下载hadoop-2.7.1.tar.gz 解压hadoop-2.7.1.tar.g ...
 - nginx+vue实现项目动静分离
			
一般的企业都会采用前后端分离的方式来开发.部署项目,这样做的好处是更好的让前后台各司其职.另外也由于nginx是一个轻量级的静态资源服务器,其高并发也是其优点之一.这样可以减轻双方服务器的压力,同时又 ...
 - 63. 不同路径 II
			
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). 现在考虑网 ...
 - Jquery | 基础 | html()
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - python元组,列表,字典练习
			
#coding = utf-8 goods_data = (["iphone7",8000],["mac pro",12000],["bike&quo ...
 - Codeforces Round #396 (Div. 2) D
			
Mahmoud wants to write a new dictionary that contains n words and relations between them. There are ...
 - Django 的简单ajax
			
需要通过ajax实现局部刷新 js代码 $('#guo-sou-ajax').click(function(){ #获取id为guo-sou-ajax点击后的信号 console.log($(this ...
 - JS脚本不能执行
			
这段时间在做前端的动态页面,出了很多问题,因为js平时用的很少,所以花了不少无用功. 其中有两点一定要注意: 1.当js中有语法错误时,js脚本会无法执行. 2.当js脚本中有未定义的变量时,后边的语 ...