首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
HDU2830
】的更多相关文章
HDU2830
一开始把题目意思理解错啦,做那好久没做出来.本题是一个dp问题:题目说列可以无限次对换,设矩阵为M[i][j],要找到面积大的矩形其实就是处理连续1的个数问题,用d[i][j](i表示行,j表示列)表示第i行从元素M[i][j]按列向下连1的个数,然后数组d[i]表示啦第i行向下连续1的个数的集合,对d[i]做一次sort从小到大排序,得到高度为d[i][1]到d[i][n]底边长度为1的小矩形,然后以第i行为基构成矩形的最大面积为s[i]=max{(n+1-j)*d[i][j]}(0<j<n…
hdu2830 可交换行的最大子矩阵
题意: 求最大子矩阵,但是相邻的列之间可以相互交换... 思路: 回想下固定的情况,记得那种情况是开俩个数组 L[i] ,R[i],记录小于等于i的最左边和最右边在哪个位置,对于这个题目,可以交换,也就是说顺序是可以自己随意更改的,那么我们直接sort一便,然后在找最大就行了,说下具体过程,便于理解 开始我们创建一个数组dp[i] ,记录第i列到当前j的位置的连续最大子序列,我们假设每一样都是矩形的下低,我们在开个数组tmp记录所有的dp,然后sort,之后可以开个数组L…