HDU 4540 威威猫系列故事——打地鼠(简单DP)
2015-01-31 00:03
183 查看
解题思路:
水题,直接DP。#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#define LL long long
#define FOR(i,x,y) for(int i=x;i<=y;i++)
using namespace std;
const int INF = 0x3f3f3f3f;
int A[25][15];
int dp[25][15];
int N, K;
int main()
{
while(scanf("%d%d", &N, &K)!=EOF)
{
FOR(i,1,N)
FOR(j,1,K)
scanf("%d", &A[i][j]);
memset(dp,INF,sizeof(dp));
FOR(j,1,K) dp[1][j] = 0;
FOR(i,2,N)
{
FOR(j,1,K)
{
FOR(l,1,K)
{
dp[i][j] = min(dp[i][j], dp[i-1][l] + abs(A[i][j] - A[i-1][l]));
}
}
}
int ans = INF;
FOR(i,1,K) ans = min(ans ,dp
[i]);
printf("%d\n", ans);
}
return 0;
}
水题,直接DP。#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#define LL long long
#define FOR(i,x,y) for(int i=x;i<=y;i++)
using namespace std;
const int INF = 0x3f3f3f3f;
int A[25][15];
int dp[25][15];
int N, K;
int main()
{
while(scanf("%d%d", &N, &K)!=EOF)
{
FOR(i,1,N)
FOR(j,1,K)
scanf("%d", &A[i][j]);
memset(dp,INF,sizeof(dp));
FOR(j,1,K) dp[1][j] = 0;
FOR(i,2,N)
{
FOR(j,1,K)
{
FOR(l,1,K)
{
dp[i][j] = min(dp[i][j], dp[i-1][l] + abs(A[i][j] - A[i-1][l]));
}
}
}
int ans = INF;
FOR(i,1,K) ans = min(ans ,dp
[i]);
printf("%d\n", ans);
}
return 0;
}
相关文章推荐
- 威威猫系列故事——打地鼠HDU - 4540 (简单dp)
- hdu 4540 威威猫系列故事——打地鼠 dp
- hdu 4540 威威猫系列故事——打地鼠 dp小水题
- HDU 4540 威威猫系列故事——打地鼠(树塔问题简单变形)
- hdu 4540 威威猫系列故事——打地鼠【暴力dp】
- HDU 4540 威威猫系列故事——打地鼠 (DP)
- HDU 4540 威威猫系列故事——打地鼠 (状态压缩DP)
- HDU 4540 威威猫系列故事――打地鼠(DP)
- hdu 4540 威威猫系列故事——打地鼠(DP)
- HDU 4540 威威猫系列故事——打地鼠(DP)
- HDU 4540 威威猫系列故事——打地鼠(DP)
- 威威猫系列故事——打地鼠(简单Dp填数)
- hdu 4504 威威猫系列故事——篮球梦_简单dp
- hdu 4540 威威猫系列故事——打地鼠
- HDU 4540 威威猫系列故事——打地鼠 (简单DP)
- hdu 4504 威威猫系列故事——篮球梦_简单dp
- hdu 4540 威威猫系列故事——打地鼠(动态规划)
- HDU 4540(威威猫系列故事——打地鼠)动态规划
- HDU 4540 威威猫系列故事——打地鼠
- hdu 4540 威威猫系列故事——打地鼠