poj 3669 Meteor Shower bfs水题
来源:互联网 发布:数据分析入门 python 编辑:程序博客网 时间:2024/06/18 00:48
// poj 3669 bfs水题// 预处理出每个坐标摧毁的时间,一遍bfs就可以了//// 数组开始只开了325,一直tle。。然后看了discuss开了400 ac了。。。//// 数组一定尽量开大点。。。哎,继续练吧。。。。#include <algorithm>#include <bitset>#include <cassert>#include <cctype>#include <cfloat>#include <climits>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <deque>#include <functional>#include <iostream>#include <list>#include <map>#include <numeric>#include <queue>#include <set>#include <stack>#include <vector>#define ceil(a,b) (((a)+(b)-1)/(b))#define endl '\n'#define gcd __gcd#define highBit(x) (1ULL<<(63-__builtin_clzll(x)))#define popCount __builtin_popcountlltypedef long long ll;using namespace std;const int MOD = 1000000007;const long double PI = acos(-1.L);template<class T> inline T lcm(const T& a, const T& b) { return a/gcd(a, b)*b; }template<class T> inline T lowBit(const T& x) { return x&-x; }template<class T> inline T maximize(T& a, const T& b) { return a=a<b?b:a; }template<class T> inline T minimize(T& a, const T& b) { return a=a<b?a:b; }const int maxn = 400;const int inf = 0x3f3f3f3f;int g[maxn][maxn];struct node {int x;int y;int t;node(int xx,int yy,int tt){x = xx;y = yy;t = tt;}};int m;int vis[maxn][maxn];const int dx[4] = {-1,0,1,0};const int dy[4] = {0,1,0,-1};void print(){for (int i=0;i<6;i++){for (int j=0;j<6;j++){printf("%d ",vis[i][j]);}puts("");}}void init(){memset(g,inf,sizeof(g));memset(vis,0,sizeof(vis));int x,y,t;for (int i=0;i<m;i++){scanf("%d%d%d",&x,&y,&t);g[x][y] = min(g[x][y],t);for (int j=0;j<4;j++){int tx = x + dx[j];int ty = y + dy[j];if (tx<0||ty<0)continue;g[tx][ty] = min(g[tx][ty],t);}}}int bfs(){queue<node> que;while(!que.empty())que.pop();que.push(node(0,0,0));vis[0][0] = true;//int cnt = 0;while(!que.empty()){node x = que.front();que.pop();//vis[x.x][x.y] = true;if (g[x.x][x.y] == inf){return x.t;}//cnt++;for (int i=0;i<4;i++){int tx = x.x + dx[i];int ty = x.y + dy[i];if (tx<0||ty<0)continue;if (vis[tx][ty])continue;if (g[tx][ty]>x.t+1){que.push(node(tx,ty,x.t+1));vis[tx][ty] = 1;}}}return -1;}void solve(){int flag = bfs();//print();printf("%d\n",flag);}int main() {//freopen("G:\\Code\\1.txt","r",stdin);while(scanf("%d",&m)!=EOF){init();solve();}return 0;}
0 0
- poj 3669 Meteor Shower bfs水题
- poj 3669 Meteor Shower (bfs)
- POJ 3669-Meteor Shower(BFS)
- POJ 3669 Meteor Shower(BFS)
- POJ 3669 Meteor Shower BFS
- POJ 3669 Meteor Shower(BFS)
- POJ-3669 Meteor Shower BFS
- Meteor Shower (poj 3669 bfs)
- [bfs] poj 3669 Meteor Shower
- poj 3669 Meteor Shower 【BFS】
- Poj 3669 Meteor Shower【bfs】
- POJ 3669 Meteor Shower (BFS)
- poj 3669 Meteor Shower(bfs)
- POJ 3669:Meteor Shower(bfs)
- [POJ] 3669 Meteor Shower [BFS]
- POJ 3669 Meteor Shower BFS 水~
- POJ 3669 Meteor Shower (BFS)
- POJ 3669 Meteor Shower (BFS + 预处理)
- Leetcode Climbing Stairs
- javaweb学习总结(四十六)——Filter(过滤器)常见应用
- HttpSessionListener实现对在线用户的精确统计
- 网宿科技面试经过(java实习生)
- 1009. Product of Polynomials (25)
- poj 3669 Meteor Shower bfs水题
- 设计一个算法,判断串T是否是另一个串t的循环反转
- hdu 2014 青年歌手大奖赛_评委会打分(java)
- CentOS下如何完全卸载MySQL?解决卸载不干净的问题
- 单链表的整表创建_头插法
- java中的static关键字
- 单链表的整表创建_尾插法
- Python多线程thread与threading实现
- impdp导入中碰到的两个问题