题意:

给定一个平面图 . 为空地(不着火) # 为草

开始可以选1-2个草堆点燃,每隔一秒会把上下左右的草引燃(开始时间为0秒)

问把所有草烧光的最少时间

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std; const int INF=;
inline int min(int a,int b){return a<b?a:b;}
inline int max(int a,int b){return a>b?a:b;} char mp[][];
int v[][];
int R,C;
int dir[][]={,,,-,,,-,}; struct Node{
int x,y;
Node(int x=,int y=):x(x),y(y){}
}t1,t2; int bfs(int a,int b,int c,int d)
{
int i,j,ans=;
for(i=;i<;i++) for(j=;j<;j++) v[i][j]=INF;
queue<Node> Q;
Q.push(Node(a,b));
Q.push(Node(c,d));
v[a][b]=v[c][d]=;
while(!Q.empty())
{
t1=Q.front();Q.pop();
for(i=;i<;i++)
{
t2.x=t1.x+dir[i][];t2.y=t1.y+dir[i][];
if(mp[t2.x][t2.y]=='#' && v[t2.x][t2.y]>v[t1.x][t1.y]+)
{
Q.push(t2);v[t2.x][t2.y]=v[t1.x][t1.y]+;
}
}
}
for(i=;i<=R;i++)
{
for(j=;j<=C;j++)
if(mp[i][j]=='#') ans=max(ans,v[i][j]);
}
return ans;
} int Slove()
{
int Min=INF;
int i,j,k,m;
for(i=;i<=R;i++)
{
for(j=;j<=C;j++)
{
if(mp[i][j]=='#')
{
for(k=i;k<=R;k++)
{
for(m=;m<=C;m++)
if(mp[k][m]=='#')
{
if(i==k && j==m) continue;
Min=min(Min,bfs(i,j,k,m));
}
}
}
}
}
return Min==INF?-:Min;
}
int main()
{
int cnt,t,Icase,i,j;
scanf("%d",&t);
for(Icase=;Icase<=t;Icase++)
{
cnt=;
scanf("%d %d",&R,&C);
for(i=;i<=R;i++)
{
getchar();
for(j=;j<=C;j++)
{
scanf("%c",&mp[i][j]);
if(mp[i][j]=='#') cnt++;
}
}
if(cnt<=) {printf("Case %d: 0\n",Icase);continue;}
for(i=;i<=R;i++) mp[i][]=mp[i][C+]='.';
for(i=;i<=C;i++) mp[][i]=mp[R+][i]='.';
printf("Case %d: %d\n",Icase,Slove());
}
return ;
}

foj 2150 bfs的更多相关文章

  1. foj 2150 Fire Game(bfs暴力)

         Problem Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M ...

  2. FZU - 2150 bfs [kuangbin带你飞]专题一

    题意:两个人玩很变态的游戏,将一个草坪的某两个点点燃,点燃的草坪可以向上下左右四个方向扩散,问能否将整块草坪上面的草都点燃.如果能,输出最短时间(^_^他们就能玩更变态的游戏了),如果不能,输出-1. ...

  3. fzu 2150(bfs)

     Problem 2150 Fire Game Accept: 693    Submit: 2657 Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  4. ACM: FZU 2150 Fire Game - DFS+BFS+枝剪 或者 纯BFS+枝剪

    FZU 2150 Fire Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  5. fzu 2150 Fire Game 【身手BFS】

    称号:fzupid=2150"> 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个 ...

  6. (FZU 2150) Fire Game (bfs)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2150 Problem Description Fat brother and Maze are playing ...

  7. FZU 2150 fire game (bfs)

    Problem 2150 Fire Game Accept: 2133    Submit: 7494Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  8. Fire Game FZU - 2150 (bfs)

    Problem 2150 Fire Game Accept: 3772    Submit: 12868Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  9. FZU 2150 Fire Game (暴力BFS)

    [题目链接]click here~~ [题目大意]: 两个熊孩子要把一个正方形上的草都给烧掉,他俩同一时候放火烧.烧第一块的时候是不花时间的.每一块着火的都能够在下一秒烧向上下左右四块#代表草地,.代 ...

随机推荐

  1. CF-629 D - Babaei and Birthday Cake (离散化 + 线段树|树状数组)

    求上升子序列的最大和.O(n^2)会暴力,在查询的时候要用线段树维护 因为权值是浮点数,故先离散化一下,设第 i 个位置的权值,从小到大排名为 id.那么dp转移中 \[d[i] = max(d[i] ...

  2. Python爬虫系列-分析Ajax请求并抓取今日头条街拍图片

    1.抓取索引页内容 利用requests请求目标站点,得到索引网页HTML代码,返回结果. 2.抓取详情页内容 解析返回结果,得到详情页的链接,并进一步抓取详情页的信息. 3.下载图片与保存数据库 将 ...

  3. GIMP如何制作一只大佬猫头像

    新建文件File -> 设置宽度为24px,高度5px:高级选项中将背景图片设置为无色 使用铅笔,前景色设为黑色,画出眼镜的模样,画出反光效果:将前景色设为灰色 放大图片,右击空白区域-> ...

  4. Linux中的常见命令

    1.   ls    查看当前目录下的所有文件夹 2.   pwd  查看当前所在的文件夹 3. cd 目录名 切换文件夹 4. touch 文件名 创建文件 5. mkdir 目录名 创建文件夹 6 ...

  5. Maven配置项目依赖使用本地仓库的方法汇总

    Maven配置项目使用本地仓库有以下方式实现: 1.类似本地仓库,但是属于本地依赖,比如某个JAR包是引用第三方的,直接放在了项目的lib文件夹,那么此时可以如下配置项目的POM: <depen ...

  6. COMP9021——6.3

    有关yield的用法简介以及图灵机 第一节课大体没有太大变化,前半节课为了给图灵机的讲解做铺垫引入了yield.数组.字符串和文件等都是一个可迭代的对象,但由于它们的所有数据都存储与内存中,对内存的消 ...

  7. poj 2229 拆数问题 dp算法

    题意:一个n可以拆成 2的幂的和有多少种 思路:先看实例 1   1 2    1+1     2 3     1+1+1  1+2 4      1+1+1+1  1+1+2  2+2  4 5  ...

  8. 笔记-python-urllib

    笔记-python-urllib 1.      简介 PYTHON3中将urllib,urllib2整合到URLLIB中 包括以下模块 urllib.request 请求模块(核心) urllib. ...

  9. emacs写cnblog博客

    emacs的版本 org-mode版本   参考链接: 用Emacs管理博客园博客   用emacs org-mode写cnblogs博客 用emacs org-mode写博客 & 发布到博客 ...

  10. HBase0.94.2-cdh4.2.0需求评估测试报告1.0之一

    hbase是bigtable的开源山寨版本.是建立的hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统.它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的r ...