NOI题库 1768最大子矩阵 题解


#include "cstdio"
#include "cstring"
#include "algorithm"
#include "cmath"
using namespace std ; int gmax( int a , int b)//求最大值
{
return a > b ? a : b ;
} int best[], temp[]; int tmp[][], pr[][]; void Init ( int n )
{
for( int i = ; i <= n ; ++i )pr[][i] = tmp[][i] ;//pr[]数组用前缀和思想
for(int i = ; i <= n ; ++i )
for (int j = ; j <= n ; ++j )
pr[i][j] = pr[i - ][j] + tmp[i][j] ;//计算前缀和
return ;
} int solve ( int *a , int N)
{ memset ( best , , sizeof(best));//best数组表示以i为结尾的最大子序列和
int ans = - ;
for ( int i = ; i <= N ; ++i)
{
if ( best[i - ] + a[i] > a[i])
{
best[i] = best[i - ] + a[i] ;//DP方程
}
else
{
best[i] = a[i] ;//DP方程
}
}
for ( int i = ; i <= N ; ++i )ans = gmax( ans , best[i]);//求出best数组中的最大值,即最大子序列和
return ans ;
} int main ( )
{
int ans = - , n;
scanf("%d", &n);
for(int i = ; i <= n ; ++i )
{
for (int j = ; j <= n ; ++j )
{
scanf("%d", &tmp[i][j]);
}
}
Init ( n );//预处理
for ( int i = ; i <= n ; ++i)
{
for ( int j = i ; j <= n ; ++j )
{
memset( temp , , sizeof(temp));
for ( int k = ; k <= n ; ++k )
{
temp[k] = pr[j][k] - pr[i - ][k];//temp数组是降维后的数组
}
ans = gmax(solve ( temp , n) , ans );//求出最大值
}
}
printf("%d\n", ans);
return ;
}
NOI题库 1768最大子矩阵 题解的更多相关文章
- NOI题库刷题日志 (贪心篇题解)
这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制: 1000ms 内存限制: 65536kB 描述 在一个平面上,如果有两个点( ...
- NOI题库 09:图像旋转翻转变换
NOI题库开始的题,也是略水,当然也是大水,所以彼此彼此 09:图像旋转翻转变换 总时间限制: 1000ms 内存限制: 65536kB 描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作 ...
- NOI题库-小学奥赛QwQ
今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...
- NOI 题库 9272 题解
9272 偶数个数字3 描述 在所有的N位数中,有多少个数中有偶数个数字3? 输入 一行给出数字N,N<=1000 输出 如题 样例输入 2 样例输出 73 Solution : 令f ( ...
- NOI 题库 8471 题解
8471 切割回文 描述 阿福最近对回文串产生了非常浓厚的兴趣. 如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串.例如,“abcaacba”是一个回文串,“abca ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T31——T35
T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个 ...
- noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30
T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...
- NOI题库192 生日蛋糕
192:生日蛋糕 总时间限制: 5000ms 内存限制: 65536kB 描述 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i ...
- 数据排序 第三讲( 各种排序方法 结合noi题库1.10)
说了那么多种排序方法了,下面就来先做几个题吧 06:整数奇偶排序 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 给定10个整数的序列,要求对其重新排序.排序 ...
随机推荐
- 终于看完<LEARNING SQL>第二版,立此存照
- GENERATED_UCLASS_BODY 和 GENERATED_BODY 区别
the GENERATED_BODY() macro allows the class to build without having a constructor defined. If you ne ...
- 莫队算法 2038: [2009国家集训队]小Z的袜子(hose)
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 ...
- maven pom.xml示例
示例说明: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...
- phpcms-v9系统搭建wap网站及单页面
如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...
- hdu 5291 dp+优化 ****
多校实在高能 题解链接 题意:有n中糖果,每种糖果有ai个.分给A,B两个人.两人的糖果要一样多,可以都是0,1......m个.同一种糖果没有区别. 问有几种分法. 定义dp[i]表示两人之间相差i ...
- java Integer和int的拆箱与装箱
官网:http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html 1.赋值: a. 把int类型赋值给Integer类型:JVM会 ...
- Android数据缓存(转)
Android数据缓存 1.http://blog.csdn.net/lnb333666/article/details/8460159 2.https://github.com/Trinea/a ...
- 在ubuntu中安装jdk
安装环境 操作系统:ubuntu 14.04.1 server amd64 下载jdk wget http://download.oracle.com/otn-pub/java/jdk/7u67-b0 ...
- RecyclerView 介绍 01
RecyclerView是Android support v7里面是一个自定义控件.用来显示大量数据集合.类似ListView和GridView这两个控件,RecyclerView同样可以实现,甚至更 ...