计蒜客————乳草的侵占
来源:互联网 发布:青岛seo搜索排名优化 编辑:程序博客网 时间:2024/04/30 10:54
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;}
- 计蒜客————乳草的侵占
- 这些流氓软件,拖家带口的侵占我的电脑,也是够“流氓”的!
- 正则表达式的三种模式【贪婪、勉强、侵占】的分析
- 关于捕获组和非捕获组得区别和侵占式表达式的作用
- PHP和Python如何侵占了Perl如此大的份额
- 如何解决安卓系统吃内存、侵占ram的问题?
- 侵占营业款流程
- 360导航侵占chrome浏览器
- 正则表达是的贪婪,勉强,侵占
- 陕北首富涉嫌造假侵占他人煤矿
- Java正则表达式学习 贪婪 勉强 侵占
- 危害仅在网络 侵占虚拟财产改判无罪
- 深圳一男子不满父亲迎娶90后 举报其职务侵占
- CSDN带引 南京一老师举报校长侵占学生伙食费 纪委介入 Q1458910822
- CSDN带引 南京一老师举报校长侵占学生伙食费 纪委介入 Q1458910822
- CSDN带引 南京一老师举报校长侵占学生伙食费 纪委介入 Q1458910822
- 关于div高度为0使得下部元素侵占空间问题
- 中国最大动漫论坛 贪婪大陆 被【无耻小人】侵占!!!全体斑竹,会员遭封id毒手
- ubuntu16.04安装NVIDIA驱动最简单的方法
- getHibernateFlushMode is not valid without active transaction;
- oracle恢复删除数据(误删)
- 每日一题之判断一棵二叉树是否是平衡二叉树以及求一颗二叉树的镜像
- 时间戳转化为时间格式
- 计蒜客————乳草的侵占
- C++继承体系
- 使用JDBC获取插入记录的自增主键值
- {A} + {B}
- LitJson 不支持 float 类型数据
- ext2fs/ext2_fs.h:没有那个文件或目录
- PCIe学习笔记(28)--- PL
- dyld: Library not loaded: @rpath/libswiftCore.dylib
- ScrollView的setOnclickListener解决办法