【tyvj1030】乳草的入侵
来源:互联网 发布:sql server 创建数据库 编辑:程序博客网 时间:2024/04/27 14:41
描述
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星期后佔领整片土地。
草地像往常一样,被分割成一个高度為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)行。
* 第2到第Y+1行: 数据的第y+1行由X个字符("."表示草地,"*"表示大石),描述草地的
第(Y+2-y)行。
输出格式
* 第一行: 一个单独的整数表示最后一个不是大石块的格子被乳草佔领的星期数。
测试样例1
输入
4 3 1 1
....
..*.
.**.
输出
4
floodfill广搜
【代码】
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int sx[8]={1,1,1,0,0,-1,-1,-1};int sy[8]={-1,0,1,-1,1,-1,0,1};int x,y,mx,my,nowx,nowy,nowstep,head,tail,n,m,ans;char s[105];struct hp{int x,y,step;}queue[10005];int a[105][105]; int main(){scanf("%d%d%d%d\n",&n,&m,&mx,&my);swap(n,m); swap(mx,my);for (int i=1;i<=n;++i){gets(s);for (int j=1;j<=m;++j) if (s[j-1]=='*') a[i][j]=1;}a[mx][my]=1;head=0,tail=1,queue[tail].x=mx,queue[tail].y=my;while (head<tail){head++;nowx=queue[head].x,nowy=queue[head].y,nowstep=queue[head].step;for (int i=0;i<8;++i){x=nowx+sx[i],y=nowy+sy[i];if (x>0&&x<=n&&y>0&&y<=m&&!a[x][y]){a[x][y]=1;tail++;queue[tail].x=x,queue[tail].y=y;queue[tail].step=nowstep+1;ans=max(ans,queue[tail].step);}}}printf("%d",ans);}
0 0
- 【tyvj1030】乳草的入侵
- 乳草的入侵
- 乳草的入侵
- 乳草的入侵
- tyvj 乳草的入侵
- tyvj p1030 乳草的入侵
- TYVJ 1330 乳草的入侵
- |Tyvj|BFS|P1030 乳草的入侵
- 【BFS】Tyvj P1030 乳草的入侵
- 【tyvj】1030 乳草的入侵 bfs
- Tyvj P1030 乳草的入侵
- C语言BFS(1)___乳草的入侵
- 黑客入侵的基础:口令入侵法
- 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
- bzoj 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
- bzoj3406 [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
- Unix的入侵追踪
- Unix 的入侵追踪
- 环信 下载语音文件
- Mac下,在VirtualBox上创建一台虚拟机
- VB.NET小结
- 用java解leetcode上的easy题(开始探险)
- HA模式下的Hadoop+ZooKeepeer+Hbase启动和关闭顺序!(针对本实验室的集群)
- 【tyvj1030】乳草的入侵
- Git参考手册
- Hibernate 不同数据库的连接及SQL方言
- Windows下利用CMake和VS2013编译OpenCV(TBB编译)
- linux c 验证 linux 用户密码
- 获取SqlServer2005表结构(字段,主键,外键,递增,描述)
- uva108
- 爬虫乱码的解决办法
- uva10827