USACO The Lazy Cow
题目描述
这是一个炎热的夏天,奶牛贝茜感觉到相当的疲倦而且她也特别懒惰。她要在她的领域中找到一个合适的位置吃草,让她能吃到尽可能多的美味草并且尽量只在很短的距离。
奶牛贝茜居住的领域是一个 N×N 的矩阵。在这个的矩阵中,贝茜至多只愿意花上 K 步。
她的每一步移动到一个单元格中,她可以走向北,南,东,西四个方向。
例如,假设矩阵如下,其中(B)描述了贝茜的初始位置(初始位置在第 3 行第 3 列):
*
* * *
* * *(B) * *
* * *
*
当 K=2,则贝茜只能达到标有*的位置。
请帮助贝茜确定她能获得的最多的美味草是多少,如果她在矩阵中选择最佳的初始位置(奶牛贝茜深知地图边界不是万丈深渊就是悬崖峭壁,她是不会为了满足自己的好奇心而冒这个险的)。
输入输出格式
输入格式:
第 1 行:两个整数 N 和 K;
接下来输入 N×N 的矩阵,第 i 行第 j 列用 A[i][j]表示这个单元格中美味草的数量;
输出格式:
输出共一行一个整数:贝茜能获得的最多的美味草的数量,如果她选择最佳的初始位置(从她能达到最多草地的位置)。
输入输出样例
输入样例1:
输出样例1:
输入样例2:
输出样例2:
说明
对于 20%的数据:1≤N≤100;0≤K≤20;
对于 50%的数据:1≤N≤400;0≤K≤200;
对于 100%的数据:1≤N≤1,000;0≤A[i][j]≤1,000;0≤K≤2N;
解题思路
我们在输入时把整个矩阵旋转一下,比如数据2(%5d):
接下来统计前缀和即可
#include<stdio.h>
#include<algorithm>
using namespace std;
][],sum[][],ans;
int main()
{
scanf("%d%d",&n,&m);
m=m*+;
;i<=n;i++)
;j<=n;j++)
scanf(][n-i+j]);
;i<=*n;i++)//求矩形(0,0)到(i,j)的和,前缀和求解
;j<=*n;j++)
sum[i][j]=sum[i-][j]+sum[i][j-]-sum[i-][j-]+a[i][j];
;i<=*n;i++)
;j<=*n;j++)
)^(j&))!=(n&))
ans=max(ans,sum[i][j]-sum[max(,i-m)][j]-sum[i][max(,j-m)]+sum[max(,i-m)][max(,j-m)]);
printf("%d\n",ans);
;
}
注:此题似乎需要读优,scanf会炸...
USACO The Lazy Cow的更多相关文章
- USACO 2.3 Cow Pedigrees
Cow Pedigrees Silviu Ganceanu -- 2003 Farmer John is considering purchasing a new herd of cows. In t ...
- USACO 6.1 Cow XOR
Cow XORAdrian Vladu -- 2005 Farmer John is stuck with another problem while feeding his cows. All of ...
- USACO 2012 Feb Cow Coupons
2590: [Usaco2012 Feb]Cow Coupons Time Limit: 10 Sec Memory Limit: 128 MB Submit: 349 Solved: 181 [Su ...
- USACO 2.4 Cow Tours
Cow Tours Farmer John has a number of pastures on his farm. Cow paths connect some pastures with cer ...
- [Usaco 2012 Feb]Cow coupons牛券:反悔型贪心
Description Farmer John needs new cows! There are N cows for sale (1 <= N <= 50,000), ...
- USACO 2011 November Cow Lineup /// map set 尺取法 oj25279
题目大意: 输入n 接下来n行描述n头牛的编号num和品种id 得到包含所有id的最短段 输出最短段的编号差 Sample Input 625 726 115 122 320 130 1 Sample ...
- USACO 2009 Open Cow Line /// 队列 oj26220
题目大意: 输入n,n次操作 操作A:在L(左边)或R(右边)插入一个递增的数 操作D:在L(左边)或R(右边)删除m个数 Sample Input 10A LA LA RA LD R 2A RA R ...
- BZOJ3476 : [Usaco2014 Mar]The Lazy Cow
旋转坐标系后转化为正方形,$x'=x+y$,$y'=x-y+1000001$,$k'=2k-1$ 两根扫描线从左往右扫 f[i]表示y坐标下边界为i时的价值和 每次加入/删除一个点等价于一段区间加减 ...
- [USACO 07DEC]Best Cow Line, Gold
Description 题库链接 给以长度为 \(n\) 的字符串,要求每次只能从两边取一个字符,使得取出来之后字典序最小. \(1\leq n\leq 30000\) Solution 将字符串翻转 ...
随机推荐
- Java 设计模式系列(九)组合模式
Java 设计模式系列(九)组合模式 将对象组合成树形结构以表示"部分-整体"的层次结构.组合模式使得用户对单个对象的使用具有一致性. 一.组合模式结构 Component: 抽象 ...
- C#使用Log4Net记录日志(转)
出处:http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html 第一步:下载Log4Net 下载地址:http://logg ...
- Android Gson 操作
JSON序列化后的数据不带类名与名命空间,所以这两个服务端跟客户端可以不对应,需要保证字段对应即可 Asp.net MVC端 using System; using System.Collection ...
- Redis数据结构(五)
存储set (1)和List类型不同的是,Set集合中不允许出现重复的元素 (2)set可包含的最大元素数量是4294967295 存储set常用命令: (1)添加/删除元素 添加 sadd myli ...
- linux每天一小步---find命令详解
1 命令功能 find命令用于搜索指定目录下的文件,并配合参数做出相应的处理. 2 命令语法 find 搜索路径pathname 选项option [-exec -ok -print 执 ...
- linux每天一小步---touch命令详解
1 命令功能: 创建文件和修改文件或者目录的时间戳 2 命令语法: touch [选项] [文件名或者目录名] 3 命令参数: -a 只修改文件的access(访问)时间. -c 或-- ...
- Synchronizer解析(为AQS打个铺垫)
ReentranceLock 和 Semaphore有很多共同点,他们都像是一个gate一样, 来控制让哪些线程阻塞,让哪些线程通过. 不同的是,ReentranceLock允许通过的量是1,Sema ...
- Android-隐式意图激活操作系统通话界面
阅读Android操作系统的 packages/apps/phone/AndroidManifest.xml,是如何暴露的 AndroidManifest.xml Android操作系统在这里明确 ...
- [转载]灵动思绪EF(Entity FrameWork)
很久之前就想写这篇文章了,但是由于种种原因,没有将自己学习的EF知识整理成一片文章.今天我就用CodeFirst和ModelFirst两种方式的简单案例将自己学习的EF知识做个总结. 在讲解EF之前, ...
- linux bash变量替换(# ## % %% / //)
VAR=hahaha echo ${VAR#*h} # ahaha 从前向后匹配删除 VAR=hahaha echo ${VAR##*h} # a 贪婪模式,从前向后匹配删除所有 VAR=hahaha ...