hdu 2830 逐行掃瞄dp求最大完全矩形

2021-06-28 13:11:38 字數 517 閱讀 5109

求最大完全矩形的基本思想就是以每一行作為底,因為任意列可以呼叫,我們記錄當前行為底的時候以某乙個點的高度,然後排序,從大到小的排序,然後掃瞄到後面每乙個點的高度為矩形高度的最大矩形面積就是h[i]*i

具體步驟如下:

很好的思路

#include #include #include #include #define max 1007

using namespace std;

int n,m;

char s[max];

int h[max];

int num[max];

int main ( )

sort ( num+1 , num+m+1 );

int j;

for ( int j =m ; j >= 1 ; j-- )

ans = max ( ans , num[j]*(m-j+1) );

}printf ( "%d\n" , ans );

}}

hdu2830 可交換行的最大子矩陣

題意 求最大子矩陣,但是相鄰的列之間可以相互交換.思路 回想下固定的情況,記得那種情況是開倆個陣列 l i r i 記錄小於等於i的最左邊和最右邊在哪個位置,對於這個題目,可以交換,也就是說順序是可以自己隨意更改的,那麼我們直接sort一便,然後在找最大就行了,說下具體過程,便於理解 開始我們建立乙...

hdu 2830 任意交換列的矩陣

這2天 做的都是有關矩陣的 小小矩陣 竟然有這麼多 花頭.這題 的特點是 we can swap any two columns any times 就是可以任意交換x列與y列 任意次 一開始 我還擔心我的方法 會不會tle 看到3000ms就放心了。我總覺得 會有更高效的方法 可惜我還沒想到 我的...

hdu2830可變換位置的hdu2870變型

題目大意 給定乙個bool矩陣.可以交換任意兩行的位置任意次.找到乙個最大子矩陣.全部是1 解題思路 把bool圖同樣轉換成乙個個處理一行數的情形.由於可以任意交換col.那麼對於col來說的話.其上所能形成的dp序列是不會變的.dp i 表示在一col中到第i個位置所能形成 的連續1有幾個 同時....