問題描述
給定n*mn∗輸入描述m(n+mn+
m為奇數)的矩陣,從(1,1)(1
,1)走到(n,m)(n
,m)且只能往右往下走,設經過的數為a_1, a_2 ... a_a
1,
a2
...
a2k
,貢獻為a_1*a_2+a_3*a_4+...+a_*a_a
1∗
a2
+a
3∗
a4
+..
.+a
2k−1
∗a
2k
,求最小貢獻。
若干組資料(大概5輸出描述5組)。
每組資料第一行兩個數n,m(1 \leq n,m \leq 1000n,
m(1≤
n,m≤
1000
且n+mn+
m為奇數)。
接下來n
n行每行m
m個數a_i, j(1 \leq ai,j \leq 100)a
i,
j(1≤
ai,j
≤100
)描述這個矩陣。
對於每組資料,輸出一行表示答案。輸入樣例
2 3輸出樣例1 2 3
2 2 1
2 32 2 1
1 2 4
48
畫個圖令
dp[i][j]dp
[i][
j]表示當前走到第
i,ji,j
個位置的最小貢獻,我們可以假定
(i+j)(i
+j)為奇數,由該狀態可以轉移向最多44
個位置,就可以了。
做dp的時候心不要急,好好找找狀態與轉移方程即可!!!!!!!!
#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
int dp[1111][1111],a[1111][1111];
const int inf=99999999;
int main()
for(i=0;i<=n;i++)
dp[1][1]=0;
for(i=1;i<=n;i++)
else if(j==1)
else }}
printf("%d\n",dp[n][m]);
}return 0;
}
最小透視矩陣的求法
遇到很多時候,需要把透視矩陣最小化,以達到效能最優。比如要求 camera 只能看到乙個洞口裡的內容這樣其它的區域是不需要進行渲染的。這裡自己寫了乙個求最小透視矩陣的方法。第一步是先求出 camera 到box 中心的向量 veccb 定義從 box中心到四個頂點的向量,再求出其各自到 veccb ...
hdu 2254 矩陣的應用
題意 有向圖中求a點到b點路徑長度為t1 t2的路徑總數 離散數學中,有向圖的鄰接矩陣a表示所有點之間路徑長度為1的路徑數量,a n則表示路徑長度為n的路徑數量,故需要求某兩點在 a t1 a t2 的路徑數量之和 1 include2 include3 include4 const int n 3...
矩陣的最小路徑和
準備校招的!這些是一本書的筆記 程式設計師 面試指南 it名企演算法與資料結構題目最優解 左程雲 給定乙個矩陣m,從左上角開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和 舉例 如果給定的m如下 135 9 813 4 506 1 8...