3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵

3406: [Usaco2009 Oct]Invasion of the Milkweed 乳草的入侵

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 87  Solved: 49
[Submit][Status][Discuss]

Description

Input

  第1行:4个由空格隔开的整数X,K Mx,My.
    第2到第Y+1行:每行由X个字符描述草地.

Output

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

Sample Input

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

Sample Output

4

HINT

 

Source

Gold

 

题解:题目本身很水,一道灌水法,BFS秒杀
但还是WA了一下,表示题目描述简直坑爹不解释,注意看清题目描述再下手(还有OI经常很良心的让你就算题目理解错了也能过样例TT)
 1 /**************************************************************
 2     Problem: 3406
 3     User: HansBug
 4     Language: Pascal
 5     Result: Accepted
 6     Time:20 ms
 7     Memory:444 kb
 8 ****************************************************************/
 9  
10 const dir:array[1..8,1..2] of longint=((1,0),(-1,0),(0,1),(0,-1),(1,1),(-1,-1),(-1,1),(1,-1));
11 var
12    i,j,k,l,m,n,x,y,x0,y0,f,r:longint;
13    a:array[0..101,0..101] of longint;
14    d:array[0..15000,1..3] of longint;
15    ch:char;
16 begin
17      readln(m,n,y,x);x:=n+1-x;
18      for i:=0 to n+1 do
19          begin
20               a[i,m+1]:=1;
21               a[i,0]:=1;
22          end;
23      for i:=0 to m+1 do
24          begin
25               a[n+1,i]:=1;
26               a[0,i]:=1;
27          end;
28      for i:=1 to n do
29          for j:=1 to m do
30              begin
31                   read(ch);
32                   if ch='.' then a[i,j]:=0 else a[i,j]:=1;
33                   if j=m then readln;
34              end;
35      d[1,1]:=x;d[1,2]:=y;d[1,3]:=0;f:=1;r:=2;
36      while f<r do
37            begin
38                 for i:=1 to 8 do
39                     begin
40                          x0:=d[f,1]+dir[i,1];
41                          y0:=d[f,2]+dir[i,2];
42                          if a[x0,y0]=0 then
43                             begin
44                                  d[r,1]:=x0;
45                                  d[r,2]:=y0;
46                                  d[r,3]:=d[f,3]+1;
47                                  inc(r);a[x0,y0]:=1;
48                             end;
49                     end;
50                 inc(f);
51            end;
52      writeln(d[f-1,3]);
53      readln;
54 end.      

 

转载于:https://www.cnblogs.com/HansBug/p/4418698.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值