POJ 3669:Meteor Shower 处处是坑的广搜
2017-07-04 10:23
435 查看
题目链接: POJ—3669
用了两个图,met记录流星最早砸下来的时间,in记录人活着的时间
我注意了一开始会死,但按照 t = 1 算的,结果t是可以为0的。。。
还有几个坑:
1、安全区可以到301
2、同一个点可以炸两次
3、必须在第一象限
4、可以一开始就死,也可以一开始就是安全区
贴上丑丑的代码
用了两个图,met记录流星最早砸下来的时间,in记录人活着的时间
我注意了一开始会死,但按照 t = 1 算的,结果t是可以为0的。。。
还有几个坑:
1、安全区可以到301
2、同一个点可以炸两次
3、必须在第一象限
4、可以一开始就死,也可以一开始就是安全区
贴上丑丑的代码
/************************************* Problem: 3669 User: ChenyangDu Memory: 1928K Time: 110MS Language: G++ Result: Accepted **************************************/ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int map[2][5] = {1,0,0,-1,0,0,1,-1,0,0}; int m,met[400][400],in[400][400],max_t; struct node{int x,y;}; node Node(int x,int y){ node r; r.x = x; r.y = y; return r; } queue <node> que; void input(){ scanf("%d",&m); int x,y,t; for(int i=0;i<m;i++){ scanf("%d%d%d",&x,&y,&t); for(int i=0;i<5;i++){ int a = map[0][i] + x; int b = map[1][i] + y; if(a>=0 && b>=0){ if(met[a][b]>-1) met[a][b] = min(t,met[a][b]); else met[a][b] = t; } } max_t = max(max_t,t); } } int main(){ //freopen("in.txt","r",stdin); memset(met,-1,sizeof(met)); input(); if(met[0][0] == -1){cout<<"0\n"<<endl;return 0;} que.push(Node(0,0)); for(int k=0;k<=max_t;k++){ node t = que.front(); while(1){ if(que.empty() || in[t.x][t.y]>k)break; for(int i=0;i<4;i++){ int a = t.x + map[0][i]; int b = t.y + map[1][i]; if(a>=0 && b>=0 && in[a][b] == 0 && (met[a][b]>k+1 || met[a][b] == -1)){ in[a][b] = k+1; que.push(Node(a,b)); } } que.pop(); t = que.front(); } } int ans = 0x7fffffff; for(int i=0;i<=350;i++){ for(int j=0;j<=350;j++){ if(met[i][j] == -1 && in[i][j]>0) ans = min(ans,in[i][j]); } } if(ans == 0x7fffffff)printf("-1\n"); else printf("%d\n",ans); fclose(stdin); return 0; }
相关文章推荐
- POJ 3669Meteor Shower(广搜)
- POJ 3669-Meteor Shower(BFS)
- POJ 3669 Meteor Shower (BFS)
- BFS搜索:POJ No 3669 Meteor Shower
- POJ 3669 Meteor Shower(BFS)
- poj 3669 Meteor Shower(bfs)
- POJ - 3669 Meteor Shower
- [bfs] poj 3669 Meteor Shower
- 【POJ 3669 Meteor Shower】简单BFS
- [POJ](3669)Meteor Shower ---- bfs+预处理
- POJ 3669 Meteor Shower
- POJ 3669 Meteor Shower(BFS)
- [POJ] 3669 Meteor Shower [BFS]
- POJ 3669 Meteor Shower
- POJ 3669 Meteor Shower 普通BFS
- POJ 3669 Meteor Shower
- POJ 3669-Meteor Shower [bfs] 《挑战程序设计竞赛》2.1
- POJ 3669 Meteor Shower (BFS + 预处理)
- ***POJ 3669 Meteor Shower【流星雨】
- POJ - 3669 - Meteor Shower(bfs)