Farmer  John一直努力让他的草地充满鲜美多汁的而又健康的牧草。可惜天不从人愿,他在植物大战人类中败下阵来。邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地。 草地像往常一样,被分割成一个高度為Y(1  < =  y  < =  100),  宽度為X(1  < =  x  < =  100)的直角网格。(1,1)是左下角的格(也就是说坐标排布跟一般的X,Y坐标相同)。乳草一开始佔领了格(Mx,My)。每个星期,乳草传播到已被乳草佔领的格子四面八方的每一个没有很多石头的格(包括垂直与水平相邻的和对角线上相邻的格)。1周之后,这些新佔领的格又可以把乳草传播到更多的格裡面了。 Bessie想要在草地被乳草完全佔领之前尽可能的享用所有的牧草。她很好奇到底乳草要多久才能佔领整个草地。如果乳草在0时刻处於格(Mx,My),那麼还在那个时刻它们可以完全佔领入侵整片草地呢(对给定的数据总是会发生)? 草地由一个图片表示。" ." 表示草,而" *" 表示大石。比如这个X=4,  Y=3的例子。

....

..*.

.**.

如果乳草一开始在左下角(第1排,第1列),那麼草地的地图将会以如下态势发展:

....        ....        MMM.    MMMM    MMMM

..*.       MM*.    MM*.      MM*M    MM*M

M**.    M**.      M**.        M**.        M**M

星期数    0         1           2             3             4

乳草会在4星期后佔领整片土地。

输入格式:

第一行:  四个由空格隔开的整数:  X,  Y,  Mx,  My

第2到第Y+1行:  数据的第y+1行由X个字符(" ." 表示草地," *" 表示大石),描述草地的第(Y+2-y)行。

输出格式:

一个单独的整数表示最后一个不是大石块的格子被乳草佔领的星期数。

样例输入

4 3 1 1
....
..*.
.**.

样例输出

4
差点被坐标系玩死。。。第二次BFS
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
struct AP
{int x,y,flag;
};
int main()
{int n,m;AP str;while(cin>>n>>m>>str.y>>str.x){int a[108][108]= {};str.flag=0;getchar();for(int i=1; i<m+1; i++){for(int j=1; j<n+1; j++){char c;cin>>c;if(c=='.')a[i][j]=1;}getchar();}queue<AP>que1;que1.push(str);a[str.x][str.y]=0;while(que1.size()){AP temp=que1.front();que1.pop();int com[16]= {-1,-1,0,-1,1,-1,-1,0,1,0,-1,1,0,1,1,1};for(int i=0; i<8; i++)if(a[temp.x+com[2*i]][temp.y+com[2*i+1]]){AP t;t.x=temp.x+com[2*i];t.y=temp.y+com[2*i+1];t.flag=temp.flag+1;a[t.x][t.y]=0;que1.push(t);}if(!que1.size())cout<<temp.flag<<endl;}}return 0;
}

计蒜客————乳草的侵占相关推荐

  1. 坑!计蒜客——乳草的侵占

    计蒜客--乳草的侵占(BFS) BFS一直写不会,可能是多加了个队列,写起来不是太容易.不过最近还是稍微入门了BFS,跟DFS差别不太大,还是由三个部分组成--出口.标记.枚举. DFS的主要的思想就 ...

  2. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  3. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  4. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  5. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  6. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  7. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

  8. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...

    在人才招聘领域存在这样一个怪圈,高校每年都说是最难就业年.人才过剩,而对于企业HR来说永远都招不到称心如意的人才.这个怪圈在"计蒜客"创始人俞昊然看来,主要是因为当今高校的教学资源 ...

  9. 计蒜客 - T1012 A*B问题

    计蒜客 - T1012 A*B问题 相信你已经学会 A+B 问题了,那么问题又来了- 输入两个正整数 A 和 B ,求 A×B. 输入格式 一行,包含两个正整数 A 和 B,中间用单个空格隔开. 1≤ ...

最新文章

  1. TOMCAT 高并发配置
  2. React性能优化之Context
  3. python人人贷爬虫_爬取人人贷网上部分借贷信息以及数据可视化
  4. 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】...
  5. python读取api接口频率_Python基础(API接口测试)
  6. 深度优先搜索——选数(洛谷 P1036)
  7. php 获取字符串长度 包含空格,php中常用的字符串长度函数strlen()与mb_strlen()实例解释...
  8. yii2框架随笔19
  9. 编程真可怕,我们日常都在写 Bug
  10. [渝粤教育] 西南科技大学 单片机原理与应用 在线考试复习资料(1)
  11. android reshare.c病毒,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
  12. 自从硬派网倒闭后,就没有什么好看的IT硬件网站了
  13. python输入一个英文句子 输出单词个数_C 统计英文句子“python is an interpreted language” 有多少个单词...
  14. PlantUML 之时序图
  15. 第6章第1节:基本设计理论:幻灯片设计过程中的七个常见技巧 [PowerPoint精美幻灯片实战教程]
  16. 『IT视界』 [职场人生]从软件工程师到IT猎头续:告诉你如何写简历
  17. 群晖NAS下docker安装MySql
  18. (转载)2010年股市只要读懂这篇文章想亏钱都难
  19. 5G技术使智能家居个性化家庭成为现实
  20. NTC(负温度)热敏电阻.阻值的计算方式

热门文章

  1. UG模具设计:强复位的作用及运作原理
  2. python编程用什么软件?Pycharm好不好?
  3. C语言课堂案例_求出小于或等于lim的所有素数并在a数组里,并返回素数的个数
  4. SAS 数据分析实例之数据描述、预处理和抽样
  5. 短信API接口demo示例-PHP/Message/XSend
  6. 计算机信息专业致谢词,计算机专业论文致谢范文3篇
  7. 运营商是否限制4G网速?联通表示只会提速,网友:那我怎么变卡了
  8. python发微信提醒天气冷了注意保暖_给客户发天气变冷注意保暖短信 提醒客户注意保暖的温馨句子...
  9. 基于OCC+OSG的CAD之GMSH与Netgen网格连贯性测试
  10. 网络营销的发展前景浅析