FZU 2150 Fire Game(kuangbin带你飞 专题一:简单搜索)
来源:互联网 发布:2017年网络红歌 编辑:程序博客网 时间:2024/06/05 23:50
回到家了- -下午在网吧写了三道,晚上回来没找到合适的桌子敲代码- -就躺被窝里面敲代码了...貌似不是很顺手...这个题目以前见到看不懂意思...没做
题意:给定一张n*m的图,#是草地,‘.’是空地,在两个地方各自放一把火,问烧完所有的草地最短时间是多少...
图的范围是10*10..看起来范围不大..然后就是枚举所有的草地,任意取两个...最差9900种情况...在跑BFS...不太会计算- -抱着试试的态度就做了...然后500+MS..
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<queue>#include<algorithm>#include<iostream>using namespace std;char map[20][20];int used[20][20],n,m;int d[4][2]={1,0,-1,0,0,1,0,-1};int ok(int x,int y){ if(x<0||y<0||x>=n||y>=m) return 0; if(map[x][y]!='#'||used[x][y]==1) return 0; return 1;}struct node{ int x,y,t;};int bfs(int ax,int ay,int bx,int by){ queue<node> q; node now,next; memset(used,0,sizeof(used)); now.x=ax,now.y=ay,now.t=0; next.x=bx,next.y=by,next.t=0; used[ax][ay]=used[bx][by]=1; q.push(now); q.push(next); int ans=0x7fffffff; while(!q.empty()) { now=q.front(); q.pop(); ans=now.t; for(int i=0;i<4;i++) { next.x=now.x+d[i][0]; next.y=now.y+d[i][1]; next.t=now.t+1; if(ok(next.x,next.y)) { used[next.x][next.y]=1; q.push(next); } } } return ans;}int main(){ int T; cin>>T; node s[200]; for(int cas=1;cas<=T;cas++) { int k=0; memset(map,0,sizeof(map)); cin>>n>>m; for(int i=0;i<n;i++) scanf("%s",map[i]); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(map[i][j]=='#') {s[k].x=i;s[k].y=j;k++;} } } int mini=0x7fffffff; for(int i=0;i<k;i++) { for(int j=i;j<k;j++) { int ans=bfs(s[i].x,s[i].y,s[j].x,s[j].y); int flag=1; for(int x=0;x<n;x++) { for(int y=0;y<m;y++) { if(used[x][y]==0&&map[x][y]=='#') { flag=0; break; } } if(flag==0) break; } if(flag) { mini=min(ans,mini); } } } printf("Case %d: ",cas); if(mini==0x7fffffff) printf("-1\n"); else printf("%d\n",mini); } return 0;}
0 0
- FZU 2150 Fire Game(kuangbin带你飞 专题一:简单搜索)
- FZU 2150 Fire Game ([kuangbin带你飞]专题一 简单搜索)
- [kuangbin带你飞]专题一 简单搜索I - Fire Game(FZU 2150)
- [kuangbin带你飞]专题一 简单搜索 I - Fire Game FZU 2150
- Fire Game [kuangbin带你飞]专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 -I - Fire Game
- [kuangbin带你飞]专题一 简单搜索-J - Fire!
- UVA 11624 Fire!(kuangbin带你飞 专题一:简单搜索)
- UVA 11624 Fire! ([kuangbin带你飞]专题一 简单搜索)
- [kuangbin带你飞]专题一 简单搜索 I FZU 2150
- [kuangbin带你飞]专题一 简单搜索J - Fire!(UVA 11624)
- [kuangbin带你飞]专题一 简单搜索 J - Fire! UVA 11624
- kuangbin带你飞 专题一 简单搜索 (题解)
- FZU - 2150 bfs [kuangbin带你飞]专题一
- [kuangbin神带你飞]专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 总结
- Kuangbin带你飞专题一 简单搜索
- [kuangbin带你飞]专题一 简单搜索 D - Fliptile
- Maven安装与使用
- Android中对SharedPreferences配置文件进行读写
- Java中判断字符串是否为数字的五种方法
- Spiral——找规律暴力
- Win32程序(一)
- FZU 2150 Fire Game(kuangbin带你飞 专题一:简单搜索)
- Cocos2dx3.3版本下配置cocostudio(原创)
- Hive下变量的使用
- A+B Coming(杭电ACM steps)(特意拿c语言写的。。。)
- QT学习 之 对话框 (二) 标准输入框
- iOS8 用UITableViewRowAction实现Cell自定义滑动操作
- Android View的ScrollBar
- C++ Primer 5 练习题答案
- 大二寒假读书笔记150125