Uva--10827(贪心)

2014-07-27 14:31:33

Maximum sum on a torus
Input: Standard Input

Output: Standard Output

 

A grid that wraps both horizontally and vertically is called a torus. Given a torus where each cell contains an integer, determine the sub-rectangle with the largest sum. The sum of a sub-rectangle is the sum of all the elements in that rectangle. The grid below shows a torus where the maximum sub-rectangle has been shaded.

 

1

-1

0

0

-4

2

3

-2

-3

2

4

1

-1

5

0

3

-2

1

-3

2

-3

2

4

1

-4

Input

The first line in the input contains the number of test cases (at most 18). Each case starts with an integer N (1≤N≤75) specifying the size of the torus (always square). Then follows N lines describing the torus, each line containing N integers between -100 and 100, inclusive.

Output

For each test case, output a line containing a single integer: the maximum sum of a sub-rectangle within the torus.

Sample Input                                  Output for Sample Input

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

 45

思路:通过把矩阵扩展成四倍,然后就转化成二维的求最大连续和的问题了,(注意最长的长度不能超过n,所以要枚举起点把长度限制一下)。

 1 /*************************************************************************
 2     > File Name: p.cpp
 3     > Author: Nature
 4     > Mail: 564374850@qq.com
 5     > Created Time: Sat 26 Jul 2014 01:46:52 PM CST
 6 ************************************************************************/
 7 
 8 #include <cstdio>
 9 #include <cstring>
10 #include <cstdlib>
11 #include <cmath>
12 #include <iostream>
13 #include <algorithm>
14 using namespace std;
15 const int INF = 0x3f3f3f3f;
16 
17 int g[400][400],sumc[400][400];
18 
19 int main(){
20     int Case,n,m;
21     scanf("%d",&Case);
22     while(Case--){
23         scanf("%d",&n);
24         m = 2 * n;
25         for(int i = 1; i <= n; ++i){
26             for(int j = 1; j <= n; ++j){
27                 scanf("%d",&g[i][j]);
28                 g[i][j + n] = g[i][j];
29                 g[i + n][j] = g[i][j];
30                 g[i + n][j + n] = g[i][j];
31             }
32         }
33         for(int i = 1; i <= m; ++i)
34             for(int j = 1; j <= m; ++j)
35                 sumc[i][j] = sumc[i - 1][j] + g[i][j];
36         int ans = -INF;
37         for(int i = 1; i <= m; ++i){
38             for(int j = i; j <= m && j <= i + n - 1; ++j){
39                 for(int v = 1; v <= n; ++v){
40                     int tsum = 0,tmax = -INF;
41                     for(int k = v; k <= v + n - 1; ++k){
42                         tsum += sumc[j][k] - sumc[i - 1][k];
43                         if(tsum < 0 && k < v + n - 1){
44                             tsum = sumc[j][k + 1] - sumc[i - 1][k + 1];
45                             ++k;
46                         }
47                         if(tsum > tmax)
48                             tmax = tsum;
49                     }
50                     ans = tmax > ans ? tmax : ans;
51                 }
52             }
53         }
54         printf("%d\n",ans);
55     }
56     return 0;
57 }

 

转载于:https://www.cnblogs.com/naturepengchen/articles/3871366.html

Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

相关推荐

研发流程后端开发工具,提示功能开发效率

后端开发工具

UVA10827球面上的最大和

题意:      最大子矩阵的加强版,就是给你一个n*n的矩阵,每个格子里面都有数字,然后我们在里面选择一个矩阵,使得矩阵中所有数字的和最大,而且这个题目说这个n*n的矩阵的最右边和最左边是相邻的,最上边和最下边是相邻的,这样就构成了一个球体。 思路:      我们依然可以用最大子矩阵的方法去做这个题目,我的大体思路是这样(方法不唯一),为了处理球的这个问题,我是给这个矩阵右侧,下

天使也掉毛 823

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并未涉及该主题的具体技术细节或仿真建模过程。相反,文档实质是一份由科研服务团队发布的跨学科资源目录,集中展示了大量基于Matlab、Simulink、Python、PSCAD等平台实现的科研项目与算法开发案例,涵盖电力系统、无人机路径规划、微电网优化、状态估计、信号处理、车间调度、图像处理、通信技术、雷达追踪、智能优化算法等多个工程技术领域。每个条目以“【】”标注研究主题,并注明“Matlab代码实现”“Python代码实现”等形式,表明其为可提供技术支持与代码资源的服务项目。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,明确体现出其作为科研辅助服务推广与引流工具的功能属性。; 适合人群:面向电气工程、自动化、控制科学与工程、计算机科学、智能制造、新能源、航空航天、通信工程及相关交叉学科的研究生、高校教师、科研人员及企业研发工程师。; 使用场景及目标:①为科研人员提供课题选题、技术路线设计与算法实现的参考范例;②辅助学生或研究人员完成课程设计、毕业论文、项目仿真与算法复现任务;③作为第三方技术服务团队的能力展示目录,便于潜在客户快速了解其在多领域提供的定制化仿真与算法开发服务范围。; 阅读建议:此文档并非传统意义上的学术论文或技术教程,而是一份高度碎片化、广告性质浓厚的资源索引清单。读者应忽略其误导性的文件名,将其视为一个综合性科研技术服务目录,重点关注自身研究方向相关的条目,并通过文末提供的公众号或网盘链接进一步获取具体代码与资料。同时,需注意甄别资源的技术质量、原创性与适用性,避免盲目依赖外部服务。

uva10827

题目大意: uva108的升华,此时是可以缠绕的。第一行可以变成最后一行,最后一行也可以变成第一行,第一列可以变成最后一列,最后一列也可以变成第一列。思路:将四个矩阵拼接在一起那么就可以枚举出可能了。代码:#include <iostream> using namespace std; #include <cstring> #include <stdio.h>int a[200][200],sum

不努力只能看别人脸色。 636

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【保姆级教程/代码】GNSS反演大气可降水量(Precipitable Water Vapor, PWV)

GPS精密单点定位(PPP)是一种采用精密卫星星历和卫星钟差进行非差单点定位的方法,在观测过程中采用双频载波相位观测法以确保高精度定位精度。本文利用PPP技术来求解天顶对流层延迟(zenith tropospheric delay,ZTD)。ZTD由湿延迟(ZWD)和干延迟(ZHD)组成,其中占比90%的ZHD与地面测站高程、大气压和测站纬度等参数有良好的相关性,可以通过Saastamoinen模型精确求出;

weixin_43910227的博客 2927

UVA 10827(环面上最大和,矩阵最大和变)

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1768 1 -1 0 0 -4             1 -1 0 0 -4 1 -1 0 0 -4 2 3 -2 -3 2             2 3 -2 -3 2  2 3 -2 -3 2

宏亮的专栏 1706

LabVIEW数据采集-数字I/O/计数器

labview 数据采集 数字I/O 计数器

weixin_43781045的博客 5619

uva10827(*前缀和,降维)

/* translation: 给出一个矩阵,要求求出一个子矩阵,问这个子矩阵最大的和是多少? solution: 降维,前缀和 note: * 将原来的矩阵复制成4份后再组合成一个大矩阵就方便处理了。然后枚举矩阵的范围,复杂度为75*75*75*75 枚举出来后,求出每一列上下界之间的和(利用前缀和可以常数时间内求出)。降维成1维后就是求最大子序列的

林伏案的博客 460

别再手动更新Excel了!用Jira看板管理你的个人项目(附保姆级配置流程)

本文详细介绍了如何利用Jira看板替代Excel进行个人项目管理,提供从注册到配置的保姆级教程。通过极简看板模式、自动化规则和数据分析功能,帮助用户实现任务可视化、协作高效化和提醒自动化,大幅提升个人工作效率。特别适合需要管理复杂个人项目的用户。

weixin_42699679的博客 229

ICT模拟零件测试方法--电容测试

通常,小到 100 pF 的电容需要补偿,因为夹具和系统的电容(20 到 50 pF)相对于被测设备的值是显著的。软件在需要补偿的电容测试中加入 comp 选项,而在不需要补偿的电容测试中加入 nocomp 选项。在调试期间,通过向电容语句添加 pc 选项验证您的电容测试。在测试单独的电容时,从测量结果中减去学到的值,然后与测试限制进行比较以决定通过或失败。请注意,如果用于需要补偿的电容测试上的感应总线使用了单独的探针,测量将无效。在测试电容时,应注意两个方面:电容的电阻元件,以及夹具和系统本身的电容。

可可南木的博客 1219

UVa 10827 - Maximum sum on a torus

题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1768 原题: A grid that wraps both horizontally and vertically is called a tor

D_Double's Journey 2561

YOLOv12改进策略【卷积层】| CVPR-2020 利用DynamicConv 动态卷积 结合A2C2f进行二次创新,提高精度

在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。

Limiiiing的博客 828

UVa 10827 Maximum sum on a torus (贪心&矩阵环中的最大子矩阵和)

10827 - Maximum sum on a torus Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1768 A grid that wraps both h

AC,∑ndless 1074

银河麒麟编译libjpeg库并配置qt环境

银河麒麟下编译libjpeg库并配置qt环境验证

小米的修行之路 1015

苏宁易购手机行情比价系统:构建一个完整的Python爬虫实战指南

在当今数字化时代,智能手机已成为人们生活中不可或缺的一部分。随着各大手机品牌每年推出多款新品,消费者面临着越来越多的选择。然而,不同电商平台、不同时间段的价格波动使得消费者很难把握最佳购买时机。苏宁易购作为国内领先的电商平台之一,拥有丰富的手机商品信息和价格数据。本文将带领读者构建一个完整的苏宁易购手机行情比价系统,帮助消费者实时掌握手机价格动态。

2201_76125261的博客 207

<算法竞赛入门经典> 第8章 贪心+递归+分治总结

虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理。 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=40741#overview 1. A UVA 10602 Editor Nottoobad 好像是俄罗斯NOI的题目,题意是给定n个字符串,然后

rootial的专栏 841

Microsemi Libero使用技巧1——查看芯片资源占用情况

Microsemi Libero使用技巧——查看芯片资源占用情况 前言 与MCU不同,FPGA的资源主要包括:逻辑资源,IO资源,Flash大小,PLL资源,SoC硬核处理器资源等,其中逻辑资源和IO资源是我们主要关心的,本篇文章将介绍,如何通过Microsemi Libero IDE来查看工程的详细资源占用情况。 A2F200M3F的资源 以Microsemi SmartFusion系列A2F2...

whik1194的博客 5695

[索引] 高效算法

AOAPC I: Beginning Algorithttp://hm Contests (Rujia Liu) Volume 4. Algorithm Design UVA 10905 - Children's Game10763 - Foreign Exchange10132 - File Fragmentation270 - Lining Up103

俯瞰风景 985

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

《算法竞赛入门经典——训练指南》第一章—算法设计基础

这是第一章的所有例题和课后习题,寒假前的任务,尽量刷吧。。。 问题求解策略 例题 例题 1 UVa11292 The Dragon of Loowater 排序后用贪心法 例题 2 UVa11729 Commando War 用贪心法求最优排列;用“相邻交换法”证明正确性 例题 3 UVa11300 Spreading The Wealt...

weixin_30387799的博客 218

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

⭐⭐⭐C++刷题和乱七八糟的东西的总目录⭐⭐⭐

⭐⭐⭐C++刷题总目录⭐⭐⭐

WTC20120518的博客 1071

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

UVA 10827(环面部分数组和最大值)

思路1,枚举每个开始的左上角的坐标,然后枚举矩形的长和宽,用数组来记录每一列的前n行和,这个数组可以是二维的,也可以是一维,用滚动来实现。用sum[i]来记录前n列和,更新ans,即可。 2,枚举矩形的上下界限,将二维数组降为一维数组的连续子序列的最大值。dp一下就可以了。思路一代码#include <bits/stdc++.h>using namespace std; int a[160][16

ACMer的博客 530

UVA10827 - Maximum sum on a torus

题目链接 题意:给出一个环形矩阵,也就是第一行和最后一行是相连的,第一列和最后一列是相连的,求最大的子矩阵的和 思路:只要将矩阵复制四个,那么就可以按照求一个矩阵内最大子矩阵之和的做法去做,即枚举所有子矩阵的和,更新最大值。要注意在转换后的大矩阵,枚举的子矩阵规格是有范围的。 代码: #include #include #include #include

懒人一枚。 962

uva 10827

与108类似 多加了两层循环 水过 #include #include #include #include #include #define maxn 110 using namespace std; int a[maxn][maxn]; int b[maxn]; int main() { int t; scanf("%d",&t); while(t--)

xlc2845的专栏 692

UVA 10827

#include #include #include #include using namespace std; #define MAXN 200 int num[MAXN][MAXN]; int main() { int t, n; scanf("%d",&t); while(t--) { scanf("%d",&n);

u013570474的专栏 482
上一篇: Uva--108(贪心)
下一篇: CF #258 E
dingdi3021
博客等级 码龄11年 1粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值