Fire Game FZU
来源:互联网 发布:2016天猫双十一数据 编辑:程序博客网 时间:2024/05/29 19:34
#include<iostream>#include<queue>#include<vector>#include<cstring>using namespace std;char maze[11][11];int book[11][11];struct point { int x,y; int time;};vector<point>vec;queue<point>que;int go[4][2]={ {1,0},{0,1},{-1,0},{0,-1}};int main(){ int num; scanf("%d",&num); for(int k=1;k<=num;k++) { int a,b; int flag=0; scanf("%d %d",&a,&b); vec.clear(); int count=0,mintime=999999,cnt=0; point now; for(int i=0;i<a;i++) { scanf("%s",maze[i]); for(int j=0;j<b;j++) { if(maze[i][j]=='#') { now.y=i; now.x=j; now.time=0; vec.push_back(now); count++; } } } if(count==1) { printf("Case %d: 0\n",k); continue; } for(int i=0;i<vec.size();i++) { for(int j=i+1;j<vec.size();j++) { cnt=0; memset(book,0,sizeof(book)); que.push(vec[i]); book[vec[i].y][vec[i].x]=1; que.push(vec[j]); book[vec[j].y][vec[j].x]=1; while(!que.empty()) { now=que.front(); que.pop(); cnt++; if(cnt==count) { flag=1; mintime=min(now.time,mintime); break; } now.time++; for(int i=0;i<4;i++) { point p=now; p.x+=go[i][0]; p.y+=go[i][1]; if(p.x>=0&&p.y>=0&&p.y<a&&p.x<b&&!book[p.y][p.x]&&maze[p.y][p.x]=='#') { book[p.y][p.x]=1; que.push(p); } } } while(!que.empty()) que.pop(); } } while(!que.empty()) que.pop(); if(flag) printf("Case %d: %d\n",k,mintime); else printf("Case %d: -1\n",k); } return 0;}
0 0
- FZU 2150 Fire Game
- FZU 2150 Fire Game
- FZU 2150 Fire Game
- FZU 2150 Fire Game
- FZU:I. Fire Game
- FZU 2150 Fire Game
- FZU-2150 Fire Game
- fzu 2150 Fire Game
- FZU Fire Game
- FZU 2150 Fire Game
- FZU 2150 - Fire Game
- fzu 2150 Fire Game
- FZU 2150 Fire Game
- FZU 2150 Fire Game
- FZU 2150Fire Game
- FZU 2150 Fire Game
- FZU-2150-Fire Game
- FZU 2150 Fire Game
- Style在Android中的继承关系
- 浅谈线性回归
- 软件需求与软件评估
- java提高篇(一)-----理解java的三大特性之封装
- 1.Youtube视频下载_2.整张网页保存为图片
- Fire Game FZU
- What I have done on...
- linux下域名解析-dig
- QT应用程序分辨率自适应
- 动态绑定
- Netty系列之Netty百万级推送服务设计要点
- 二分查找
- 调用WEKA包进行kmeans聚类(java)
- java提高篇(二)-----理解java的三大特性之继承