乳草的入侵
来源:互联网 发布:js href target 编辑:程序博客网 时间:2024/04/27 16:35
描述 Description
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星期后佔领整片土地。
输入格式 InputFormat
* 第一行: 四个由空格隔开的整数: X, Y, Mx, My* 第2到第Y+1行: 数据的第y+1行由X个字符("."表示草地,"*"表示大石),描述草地的
第(Y+2-y)行。
输出格式 OutputFormat
* 第一行: 一个单独的整数表示最后一个不是大石块的格子被乳草佔领的星期数。样例输入 SampleInput [复制数据]
4 3 1 1......*..**.
样例输出 SampleOutput [复制数据]
4
#include <stdio.h>#include <string.h>#include <queue>using namespace std;struct node{int x, y;int count;};int x, y, mx, my, c;char map[110][110];queue <node> q;int des[8][2] = {{1, 0}, {0, 1}, {-1, 0}, {0, -1}, {1, -1}, {1, 1}, {-1, -1}, {-1, 1}};void bfs(){int i, a, b;node e = {mx, my, 0};map[mx][my] = 'M';q.push(e);while(!q.empty()){e = q.front();q.pop();for(i = 0; i < 8; i++){a = e.x + des[i][0];b = e.y + des[i][1];if(a >= 1 && a <= y && b >= 1 && b <= x){if(map[a][b] == '.'){map[a][b] = 'M';node e1 = {a, b, e.count + 1};//printf("a = %d, b = %d\n", a, b);q.push(e1);c = e1.count;//printf("c = %d\n", c);}}}}return ;}int main (void){int i, j;while(scanf("%d %d %d %d", &x, &y, &mx, &my) != EOF){//之前的错误在这里。。。 int temp = my;my = mx;mx = y - temp + 1;getchar();for(i = y; i > 0; i --){for(j = 1; j <= x; j++){scanf("%c", &map[i][j]);}getchar();}bfs();printf("%d\n", c);while(!q.empty())q.pop();c = 0;}return 0;}
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 的入侵追踪
- 活动选择问题
- uva 10082 - WERTYU
- OpenGL: 多视口
- uva 10098 - Generating Fast
- SVN使用之更新,提交,同步
- 乳草的入侵
- 2.4 URLRouting和URLRewrite的区别
- hdu 2067 小兔的棋盘【关于Catalan数的一点学习】
- 项目敏捷(3)--第一个Sprint总结
- NSRange 用法
- 在C语言中模拟含有默认参数的函数
- C#中常用控件及其属性的用法
- 好用的排序之堆排序
- stringByReplacingCharactersInRange: withString: 实现字符串删除,替换