您的位置:首页 > 其它

hdu 5569 matrix(dp)

2015-12-03 20:53 429 查看
题目链接:hdu 5569 matrix

代码

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 1005;
const int inf = 0x3f3f3f3f;

int N, M, A[maxn][maxn], dp[maxn][maxn];

int solve () {
memset(dp, inf, sizeof(dp));
dp[1][0] = dp[0][1] = 0;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
if ((i + j)&1)
dp[i][j] = min(dp[i-1][j] + A[i-1][j] * A[i][j], dp[i][j-1] + A[i][j-1] * A[i][j]);
else
dp[i][j] = min(dp[i-1][j], dp[i][j-1]);
}
}
return dp
[M];
}

int main () {
while (scanf("%d%d", &N, &M) == 2) {
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++)
scanf("%d", &A[i][j]);
}
printf("%d\n", solve());
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: