TYVJ P1030 乳草的入侵 Label:跳马问题
背景
描述
草地像往常一样,被分割成一个高度為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列),那麼草地的地图将会以如下态势发展:

乳草会在4星期后佔领整片土地。
输入格式
* 第2到第Y+1行: 数据的第y+1行由X个字符("."表示草地,"*"表示大石),描述草地的
第(Y+2-y)行。
输出格式
测试样例1
输入
4 3 1 1
....
..*.
.**.
输出
4
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int N,M,P,dep,ans,X,Y,map[][],
dx[]={ ,,, ,,-,-,-},
dy[]={-,,,-,,-, , };
char juzhen[][];
struct cc{
int x,y;
}q1;
queue<cc> que; void init_(){
memset(map,-,sizeof(map));
scanf("%d%d%d%d",&N,&M,&X,&Y);//M行 N列
for(int i=M;i>=;i--){
scanf("%s",juzhen[i]+);
}
q1.x=Y;q1.y=X;
que.push(q1);
map[Y][X]=;
} void print(){
for(int i=;i<=M;i++){
for(int j=;j<=N;j++){
printf("%-3d",map[i][j]);
}
puts("");
}
puts("");
} int main(){
// freopen("01.txt","r",stdin);
init_(); while(!que.empty()){
q1=que.front();que.pop();
for(int i=;i<;i++){
int xx=q1.x+dx[i],yy=q1.y+dy[i];
if(xx<||yy<||xx>M||yy>N) continue;
if(juzhen[xx][yy]=='*') continue;
if(map[xx][yy]>=) continue;
cc q2;q2.x=xx;q2.y=yy;
que.push(q2);
map[xx][yy]=map[q1.x][q1.y]+;
ans=max(ans,map[xx][yy]);
}
// print();
}
printf("%d\n",ans);
return ;
}这输入方式我整个人都不好了,n和m搞混,x和y搞混,
样例还如此飘逸,根本不知道x和y反了!!!
TYVJ P1030 乳草的入侵 Label:跳马问题的更多相关文章
- [TYVJ] P1030 乳草的入侵
乳草的入侵 背景 Background USACO OCT09 6TH 描述 Description Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物 ...
- Tyvj 1030 乳草的入侵
以一个简单的BFS对基础搜索做一个收尾好了. 给一个草,然后以这棵草为九宫格的中心,每周向周围八个方向扩散,问多少个星期能把这个农场占满. 遍历整个map,最后一个出队列的对应的星期数就是所求. // ...
- 乳草的入侵//BFS
P1030 乳草的入侵 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 USACO OCT09 6TH 描述 Farmer John一直努力让他的草地充满鲜美 ...
- 3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵
3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 8 ...
- TYVJ P1074 武士风度的牛 Label:跳马问题
背景 农民John有很多牛,他想交易其中一头被Don称为The Knight的牛.这头牛有一个独一无二的超能力,在农场里像Knight一样地跳(就是我们熟悉的象棋中马的走法).虽然这头神奇的牛不能跳到 ...
- BZOJ 3406 乳草的入侵
BFS. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm&g ...
- [USACO09OCT]Invasion of the Milkweed】乳草的侵占-C++
Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份占领了一片立足之地. 草地像往常一样,被分割成一个高 ...
- 乳草的侵占(BFS)
armer John一直努力让他的草地充满鲜美多汁的而又健康的牧草.可惜天不从人愿,他在植物大战人类中败下阵来.邪恶的乳草已经在他的农场的西北部份占领了一片立足之地. 草地像往常一样,被分割成一个高度 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- 在Windows Server 2012 中安装 .NET 3.5 Framework
问题 如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行.在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程 ...
- nc 常用命令
nc(NetCat),在网络工具中有”瑞士军刀”的美誉,它短小精悍,功能强大,下面分享一些我平时经常用到的功能,更多的功能请google之. 1.基本参数想要连接到某处: nc [-options] ...
- 【JavaScript】ReactJS&NodeJS了解资料
ReactJS: GitHub:https://github.com/facebook/react React 入门实例教程:http://www.ruanyifeng.com/blog/2015/0 ...
- eclipse加速之禁用JS、jsp等文件的语法验证,eclipsejs
eclipse加速之禁用JS.jsp等文件的语法验证 去除eclipse的JS验证:将windows->preference->Java Script->Validator-> ...
- 17.把字符串转换成整数[atoi]
[题目] 把字符串转换成整数,需要考虑字符串有效性. [代码] C++ Code 123456789101112131415161718192021222324252627282930313233 ...
- Greedy:Allowance(POJ 3040)
零用钱大作战 题目大意:农夫和牛又搞新花样了,现在农夫想给Bessie每个星期都给一点零用钱,农夫有一堆面值的钱币,并且这个钱币都能被上一个钱币整除(1,5,10,50),并且钱币有一定数量,要你求最 ...
- 编译qt
进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里 ...
- php 抽象类、接口和构析方法
<?php /*class Ren { public static $color; static function Show() { Car::$name; self::$color; } } ...
- MyISAM InnoDB 区别
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...
- JS 中的foreach和For in比较
使用方式举例如下: <script type="text/javascript"> var jsonranklist=[{"name":" ...