威威猫系列故事——打地鼠HDU - 4540 (简单dp)
2017-08-04 19:27
281 查看
C - 威威猫系列故事——打地鼠
HDU - 4540 solution:
一排一排的确定,dp[i][j]表示的是在第i排第j个数消耗的最小能量。
求dp[i][j]时,要将上一排的数都遍历一遍,找出dp[i][j]与上一排某个数dp[i-1][k]的差和dp[i-1][k]自身本来的值的和的最小值,即状态转移方程:
dp[i][j] = min ( dp[i][j] , dp[i-1][k] + abs ( a[i][j] - a[i-1][k] ) ) ;
code:
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
#define inf 1100000
int dp[22][12],a[22][12];
int main()
{
int n,m,i,j,k;
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
dp[i][j]=inf;
}
for(i=0;i<m;i++)
dp[0][i]=0;
for(i=1;i<n;i++)
for(j=0;j<m;j++)
for(k=0;k<m;k++)
dp[i][j]=min(dp[i][j],dp[i-1][k]+abs(a[i][j]-a[i-1][k]));//状态转移方程。
int min1=inf;
for(i=0;i<m;i++)//在最后一排找出的最小值就为所求值。
if(dp[n-1][i]<min1)
min1=dp[n-1][i];
printf("%d\n",min1); } }
相关文章推荐
- HDU 4540 威威猫系列故事——打地鼠(简单DP)
- 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)
- HDOJ4540 威威猫系列故事——打地鼠 【DP】
- HDU - 4540 威威猫系列故事——打地鼠
- HDU 4540 威威猫系列故事——打地鼠 (简单DP)
- Hdu 4540 威威猫系列故事——打地鼠
- HDU 4540(威威猫系列故事——打地鼠)动态规划
- 威威猫系列故事——打地鼠(HDU-4540)
- hdu 4540 威威猫系列故事——打地鼠 dp小水题
- hdu——4540威威猫系列故事——打地鼠
- HDU 4540 威威猫系列故事——打地鼠