基於組合的分田地

2021-07-16 02:31:31 字數 1621 閱讀 6504

題目描述:

洋洋和15個朋友來玩打土豪分田地的遊戲,洋洋決定讓你來分田地,地主的田地可以看成是乙個矩形,每個位置有乙個價值,分割田地的方法是橫豎各切三刀,分成16份,作為領導幹部,洋洋總是會選擇其中價值最小的乙份田地,作為洋洋最好的朋友,你希望洋洋取得的田地價值和盡可能大,你知道這個值最大可以是多少嗎?

輸入描述:

每個輸入包含1個測試用例。每個測試用例的第一行包含兩個整數n和m(1 <=n, m <= 75),表示田地的大小,接下來的n行,每行包含m個0-9之間的數字,表示每塊位置的價值。

輸出描述:

輸出一行表示洋洋所取得的最大的價值。

輸入例子:

4 4輸出例子:

分析:是考察組合

**:

#include #include #include #include #include #include using namespace std;  

bool compare(const char &lhs, const char& rhs)

bool combination(string &wk)

else

return false;

}

int main(int argc, char** argv)

{ int n, m;

while(cin >> n >> m)

{ vector< vector> a(n, vector(m, 0));

vector< vector> ia(n+1, vector(m+1,0)); // the integral image

for(int i=0; i

結果如下:

後記:這樣輸入進來的是轉換成了ascii碼,相當於輸入進來的是字元型:

第一種情況:

輸出:其中51是3的ascii碼,

第二種情況:

輸出:竟然也能把換行輸出來了,且ia中儲存的就是想要的數。

第三種情況,改為int儲存,也沒有啥問題

輸出:

參考:組合演算法(c++ 實現) 

heap corruption detected錯誤解決方法除錯方法以及記憶體管理相關 

牛客網 分田地

每個輸入包含 1 個測試用例。每個測試用例的第一行包含兩個整數 n 和 m 1 n,m 75 表示田地的大小,接下來的 n 行,每行包含 m 個 0 9 之間的數字,表示每塊位置的價值。輸出一行表示牛牛所能取得的最大的價值。示例1 4 4 3332 3233 3332 23232n,m int ea...

動態規劃題解 D001 分田地

題目描述 牛牛和 15 個朋友來玩打土豪分田地的遊戲,牛牛決定讓你來分田地,地主的田地可以看成是乙個矩形,每個位置有乙個價值。分割田地的方法是橫豎各切三刀,分成 16 份,作為領導幹部,牛牛總是會選擇其中總價值最小的乙份田地,作為牛牛最好的朋友,你希望牛牛取得的田地的價值和盡可能大,你知道這個值最大...

JZOJ2938 分割田地 DP

題目 給出2 n2 n的矩陣,求有多少種方案可以把這個矩陣分割成mm塊。很明顯是dpd p啊。設f i j 0 1 f i j 0 1 表示選到第i i列,有j j個聯通塊,這一列的兩個格仔是否分在同一塊 0表示不是,1表示是 的方案數。那麼我們分情況來看。第ii列不同塊,比第i 1 i 1列多出兩...