描述
乙個長,寬,高分別是m,n,p的長方體被分割成m*n*p個小立方體。每個小立方體內含乙個整數。試著設計乙個演算法,計算所給長方體的最大子長方體。子長方體的大小由它內部所含所有整數之和確定。 約定:當該長方體所有元素均為負數時,輸出最大子長方體為0。
輸入格式
第一行3個正整數m,n,p,其中 1<=m,n,p<=50 接下來的m*n行中每行p個整數,表示小立方體中的數。
輸出格式
第一行中的數是計算出的最大子長方體的大小。
輸入樣例
3 3 3 0 -1 2 1 2 2 1 1 -2 -2 -1 -1 -3 3 -2 -2 -3 1 -2 3 3 0 1 3 2 1 -3
輸出樣例
14思路:
1,先編寫一維的「最大欄位和」的解法。
2,基於「最大欄位和」,編寫二維的「最大子矩陣和」的解法。
3,基於「最大子矩陣和」,編寫三維的「最大子長方體和」的解法。
#include#include#includeusing namespace std;
int t[3][3][3];
int max1(int *a, int n)
return sum;
}int max2(int m,int n,int**a)
}return max;
}int max3(int m,int n,int p,int a[3][3][3])
}return max;
}int main()
} }printf("%d",max3(3,3,3,t));
return 0;
}
最大長方體問題(cube)
演算法 dp 分析 跟平面的類似,是在先確定兩個軸的情況下再確定另乙個軸,最後確定完第三個軸也就是最後乙個軸之後,再轉化成一道求一串數的連續最大。include include includeusing namespace std define min 10000 int m,n,p int tem...
SCAU OJ題 8601 最大長方體問題
時間限制 1000ms 記憶體限制 1000k 提交次數 0 通過次數 0 語言 not limited 描述乙個長,寬,高分別是m,n,p的長方體被分割成mnp個小立方體。每個小立方體內含乙個整數。試著設計乙個演算法,計算所給長方體的最大子長方體。子長方體的大小由它內部所含所有整數之和確定。約定 ...
簽到題 長方體問題
tt有乙個a b c的長方體。這個長方體是由a b c個1 1 1的小正方體組成的。現在tt想給每個小正方體塗上顏色。需要滿以下三點條件 1 每個小正方體要麼塗成紅色,要麼塗成藍色。2 所有紅色的小正方體組成乙個長方體。3 所有藍色的小正方體組成乙個長方體。現在tt想知道紅色小正方體的數量和藍色小正...