[POJ1050]To the Max】的更多相关文章

[POJ1050]To the Max 试题描述 Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that…
最大子段和 Ο(n) 的时间求出价值最大的子段 #include<cstdio> #include<iostream> using namespace std; int n,maxn; ],ans[]; int main(){ scanf("%d",&n); ;i<=n;i++){ scanf("%d",&val[i]); ans[i]=max(ans[i-]+val[i],val[i]); maxn=max(maxn,…
数据弱,暴力过 题意 N^N的矩阵,求最大子矩阵和 思路 悬线?不需要.暴力+前缀和过 代码 //poj1050 //n^4暴力 #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> #define N 105 #define INF 0x3fffffff using namespace std; int a[N][N]; int sum[N]; int ans; int…
POJ1050 给定一个矩阵,求和最大的子矩阵. 将每一列的值进行累加,枚举起始行和结束行,然后就可以线性优化了 复杂度O(n^3) #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std; const int N=301,M=301; co…
题目链接:http://poj.org/problem?id=1050 发现这个题没有写过题解,现在补上吧,思路挺经典的. 思路就是枚举所有的连续的连续的行,比如1 2 3 4 12 23 34 45 123 234 345...然后把这些行对应列相加缩成一行,之后就是求最大子序列和了. /* ━━━━━┒ギリギリ♂ eye! ┓┏┓┏┓┃キリキリ♂ mind! ┛┗┛┗┛┃\○/ ┓┏┓┏┓┃ / ┛┗┛┗┛┃ノ) ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗┛┃ ┓┏┓┏┓┃ ┛┗┛┗…
To the Max Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 54338   Accepted: 28752 Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located wi…
To the Max Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 49351   Accepted: 26142 Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located wi…
题目链接 http://poj.org/problem?id=1050 题意 求最大子矩阵和. 题解 即求二维的最大子段和.二维数组sumRec[I][j]存储原始数组数据rec[0][j] to rec[I][j].那么sum[k][j]-sum[I][j]即表示从I+1到k行的第j列这一列的元素和.然后再遍历j,就变成了求一维子段和的问题.共三重循环,时间复杂度O(n^3) . 求一维最大子段和方法:每遍历一个元素,先判断之前元素的累加和若为负,则直接舍去前面的所有累加元素,因为对和更大没有…
POJ1723 Soldiers 思维题. 考虑y坐标,简单的货舱选址问题,选择中位数即可. 再考虑x坐标,由于直接研究布置方法非常困难,可以倒着想:不管如何移动,最后的坐标总是相邻的,且根据贪心的思路,站队前后士兵的相对位置应该不变.那么记\(pos\)为最后水平线起点的前一位置,则有\(x_1-1=pos,x_2-2=pos,...,x_n-n=pos\),所以答案为\(\sum_{i=1}^{n}|(x_i-i)-k|\),这样就又变成了一道中位数的题目. 不放代码了. POJ1050 T…
http://poj.org/problem?id=1050 (题目链接) 题意 求二维最大子矩阵 Solution 数据好像很水,N最大才100,N^4大暴力都可以随便水过. 其实有N^3的做法.枚举矩阵上下边界,然后把中间的一大坨看作是一维的一条直线,O(n)的做最长子段和即可.当然记得要预处理出前缀和. 代码 // poj1050 #include<algorithm> #include<iostream> #include<cstdlib> #include&l…