Description

你难以想象贝茜看到一只妖精在牧场出现时是多么的惊讶.她不是傻瓜,立即猛扑过去,用她那灵活的牛蹄抓住了那只妖精.
    “你可以许一个愿望,傻大个儿!”妖精说.
    “财富,”贝茜用梦游般的声音回答道,  “我要获得财富的机会.”
    妖精从来没有碰到过这么简单的愿望.他在地方划出一大块N×N(1≤N≤200)的方格,每个格子上写上_1,000,000到1,000,000之间的数字.他说:  “在方格上朝一个方向行走,可以是行的方向,列的方向,斜对角的方向,一步只能走一格,所有你踩过的数字的和就是你的财富.”
    贝茜请你来帮忙,找到一行、一列或一条对角线上找一段连续的数字,它们的和最大.由于妖精方格的神奇特性,沿着一个方向走,走到了边际,再一步跨过去可以“绕”到方格的对边出现.一行两端的格子是相邻的,一列两端的格子也是相邻的,甚至相邻两行的分别两端的格子也是相邻的(斜对角方向).
    对于下图左边的方格,所有标记过的数字都在一条对角线上.
  
 
对于这个方格,能踩出来的最大的和是24,踩过的数字在右图中标记出来了

Input

    第1行输入N,之后输入N行N列的矩阵.

Output

 
    输出最大的和.

Sample Input

4
8 6 6 1
-3 4 0 5
4 2 1 9
1 -9 9 -2

Sample Output

24
 
 
 
这么差的代码居然#1了……233
暴力枚举不解释,维护前缀和就好了,当然记得要找出最大区间的同时可以找一下最小区间,用总和减最小区间也可以是一种答案
然后注意至少要踩一个格子(被卡了3发……)
 
#include<cstdio>
#include<algorithm>
using namespace std; int n,h[][],l[][],g[][],f[][],m,i,j;
int main(){
scanf("%d",&n);
for (i=;i<n;i++)
for (j=;j<n;j++){
scanf("%d",&m);
h[i][j]=h[i][j-]+m;l[j][i]=l[j][i-]+m;g[(i-j+*n)%n][i]=g[(i-j+*n)%n][i-]+m;f[(i+j)%n][i]=f[(i+j)%n][i-]+m;
}
for (i=;i<n;i++)
for (j=;j<n;j++){
if (m<h[i][j]-h[i][n]) m=h[i][j]-h[i][n];
if (m<l[i][j]-l[i][n]) m=l[i][j]-l[i][n];
if (m<g[i][j]-g[i][n]) m=g[i][j]-g[i][n];
if (m<f[i][j]-f[i][n]) m=f[i][j]-f[i][n];
if (m<h[i][n-]-(h[i][j-]-h[i][n+])) m=h[i][n-]-(h[i][j-]-h[i][n+]);
if (m<l[i][n-]-(l[i][j-]-l[i][n+])) m=l[i][n-]-(l[i][j-]-l[i][n+]);
if (m<g[i][n-]-(g[i][j-]-g[i][n+])) m=g[i][n-]-(g[i][j-]-g[i][n+]);
if (m<f[i][n-]-(f[i][j-]-f[i][n+])) m=f[i][n-]-(f[i][j-]-f[i][n+]);
if (h[i][n]>h[i][j]) h[i][n]=h[i][j];
if (l[i][n]>l[i][j]) l[i][n]=l[i][j];
if (g[i][n]>g[i][j]) g[i][n]=g[i][j];
if (f[i][n]>f[i][j]) f[i][n]=f[i][j];
if (h[i][n+]<h[i][j]) h[i][n+]=h[i][j];
if (l[i][n+]<l[i][j]) l[i][n+]=l[i][j];
if (g[i][n+]<g[i][j]) g[i][n+]=g[i][j];
if (f[i][n+]<f[i][j]) f[i][n+]=f[i][j];
}
printf("%d\n",m);
}

这代码略优美……

bzoj:1723: [Usaco2009 Feb]The Leprechaun 寻宝的更多相关文章

  1. Bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 dijkstra,堆,分层图

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1573  Solv ...

  2. BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级( 最短路 )

    最短路...多加一维表示更新了多少条路 -------------------------------------------------------------------------------- ...

  3. BZOJ 1578: [Usaco2009 Feb]Stock Market 股票市场( 背包dp )

    我们假设每天买完第二天就卖掉( 不卖出也可以看作是卖出后再买入 ), 这样就是变成了一个完全背包问题了, 股票价格为体积, 第二天的股票价格 - 今天股票价格为价值.... 然后就一天一天dp... ...

  4. BZOJ 3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛( dp )

    水题...忘了取模就没1A了.... --------------------------------------------------------------------------- #incl ...

  5. bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 -- 分层图最短路

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec  Memory Limit: 64 MB Description 每天,农夫 ...

  6. bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 优先队列+dij

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1768  Solv ...

  7. bzoj:3397 [Usaco2009 Feb]Surround the Islands 环岛篱笆

    Description     约翰在加勒比海买下地产,准备在这里的若干个岛屿上养奶牛.所以,他要给所有岛屿围上篱笆.每个岛屿都是多边形.他沿着岛屿的一条边界朝一个方向走,有时候坐船到另一个岛去.他可 ...

  8. bzoj:3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛

    Description     约翰要带N(1≤N≤100000)只牛去参加集会里的展示活动,这些牛可以是牡牛,也可以是牝牛.牛们要站成一排.但是牡牛是好斗的,为了避免牡牛闹出乱子,约翰决定任意两只牡 ...

  9. bzoj 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle——小根堆+大根堆+贪心

    Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1& ...

随机推荐

  1. 【正则表达式】匹配时间格式:hh:mm或h:m

    ^(0?[0-9]|1[0-9]|2[0-3]):(0?[0-9]|[1-5][0-9])$

  2. iOSXML & JSON 简介

    XML & JSON 简介 •JSON –作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 –基于JavaScript的一个子集 –易读性略差,编码手写难度大,数据量小 ...

  3. 通过 JS 判断页面是否有滚动条的简单方法

    前言 最近在写插件的过程中,需要使用 JS 判断是否有滚动条,搜了一下,大致方法都差不多,但都有些啰嗦,代码不够简洁.最终通过参考不同方法,写了一个比较简单的方法.在判断滚动条的同时也需要计算滚动条的 ...

  4. boost::assign(标准容器填充库)

    boost::assign通过对"+="和","的重载非常方便的填充标准容器(std::vector,std::set,std::list,std::map), ...

  5. 重写JS的鼠标右键点击菜单

    重写JS的鼠标右键点击菜单 该效果主要有三点,一是对重写的下拉菜单的隐藏和显示:二是屏蔽默认的鼠标右键事件:三是鼠标左键点击页面下拉菜单隐藏. 不多说,上html代码: 1 <ul id=&qu ...

  6. ActiveMQ (三) 讯息传送机制以及ACK机制

    详析请看如下博客: http://blog.csdn.net/lulongzhou_llz/article/details/42270113 后续再做整理.

  7. Using F2 to Rename Open Files

    Copy to your User keymap { "keys": ["shift+f2"], "command": "rena ...

  8. python (5分钟实现一个游戏的屏蔽敏感字系统,)

    import datetime time=datetime.datetime.now() dirty= ['fuck','狗日的','犊子','麻批','仙人板板','R你妈','操你','草你',' ...

  9. 洛谷 P1485 火枪打怪

    题目描述 LXL进入到了一片丛林,结果他发现有n只怪物排成一排站在他面前.LXL有一杆火枪能对付这些怪物.他知道从左至右数第i只怪物的血量是mi.现在LXL可以将一些子弹射向某个怪物.LXL可以控制他 ...

  10. Jenkins:VMware虚拟机Linux系统的详细安装和使用教程

    jenkins:VMware虚拟机Linux系统的详细安装和使用教程 (一) 不是windows安装虚拟机可跳过 1.Windows安装VMware 2.VMware安装linux系统 3.windo ...