【usaco2013 mar】懒惰的奶牛[s](lazy_silver)

题目描述

夏天到了,奶牛贝里斯又开始变得懒惰起来。他想要站在一个地方,然后吃掉一定范围内的所有青草。贝里斯所在的田地可以描述为一个NN的方阵,对于方阵中的第r行和第c列上的数字G(r,c),表示这个小方格中青草的数量。贝里斯会在方阵中选择一个初始位置(小方格),然后以这个位置为起点经过的步数不超过K的地方的青草都将被贝里斯吃掉。每走一步,就是走到相邻(上下左右直接相邻)的其中一个小方格中去。例如,有一个方阵如图所示,贝里斯的初始位置是(3,3),有(B)标示的地方。
在这里插入图片描述
如果K=2,那么贝里斯只能走到
号所标示的地方。如果初始的位置可以选择的话,请帮助贝里斯计算他最多能吃到的青草的数量。

输入

第一行是两个正整数N和K。
接下里N行,每行N个整数,表示方阵。

输出

贝里斯最多能吃到的青草的数量。

样例输入

5 2
50 5 25 6 17
14 3 2 7 21
99 10 1 2 80
8 7 5 23 11
10 0 78 1 9

样例输出

342

数据范围限制

1<=N<=400,0<=G(r,c)<=1000,0<=K<=2*N。

提示

样例中,如果贝里斯的初始位置是(3,3)的话,他能吃到最多的青草数量是342。

解题思路1(宽搜)

枚举每个点并进行bfs求出答案,求出最大值。
时间复杂度:O(n^3) 很有可能爆掉。
(但是好像数据没有那么毒瘤,可以过)

解题思路2(前缀和)

利用前缀和的方式求出每段数字和,通过枚举点+枚举上限下限的方式求出所有答案。
时间复杂度<O(n^3) 虽然极限数据也会爆,但是能过。(数据很水)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值