題目描述:
給定乙個m*m的矩陣,矩陣中每個數字都是整數。
在該矩陣中找到乙個大小為n*n的子矩陣,使該子矩陣中的所有元素和最小。輸出該最小元素和。
思路
1. 簡單版的最小矩陣, 矩陣被限定在正方形
2. 對於子問題的求解, 幾乎算不上是動態規劃了, 只能說是一道模擬題
3. 乙個游標, 遍歷第 n~m 行, 對每一行, 利用單調佇列計算矩陣的和, 時間複雜度為 o(m*m)
**
#include #include#include
using
namespace
std;
int matrix[200][200
];int line[200
];int caloneline(int m, int
n)
return
minval;
}int
main()
}memset(line,
0, sizeof
(line));
for(int i = 0; i < n; i ++)
}int minval =caloneline(m, n);
for(int i = n; i < m; i++)
minval =min(minval, caloneline(m, n));
}printf(
"%d\n
", minval);
}return0;
}
九章演算法面試題87 最小子陣列
www.jiuzhang.com 給定乙個整數陣列,找到乙個具有最小和的子陣列。返回其最小和。這道題和max subarray很類似,我用local 和 global 的dp方式闊以解決這道 那麼我們來看動態規劃的四個要素分別是什麼?state localmin i 表示以當前第i個數最為結尾的最小...
九度題目 矩陣轉置(1193)
題目描述 輸入乙個n n的矩陣,將其轉置後輸出。要求 不得使用任何陣列 就地逆置 輸入 輸入的第一行包括乙個整數n,1 n 100 代表矩陣的維數。接下來的n行每行有n個整數,分別代表矩陣的元素。輸出 可能有多組測試資料,對於每組資料,將輸入的矩陣轉置後輸出。樣例輸入 3 1 2 3 4 5 6 7...
九度 1154《最小生成樹》
北大10機試 1154 jungle roads wa 原因,初始化時為1 size 1,而使用時ch a 是從0開始的。但是,本地測試卻與答案相同!所以,優點隱蔽。所以初始化時,為0 size 1時,就安全保險了。還需要養成習慣,做到點的開始為1。除非規定了第乙個點為0.include inclu...