HDU 4540 威威猫系列故事——打地鼠(DP)

来源:互联网 发布:贝叶斯网络引论 编辑:程序博客网 时间:2024/06/03 13:07

简单DP题。

dp[i][j]表示第i时刻打第J个位置所能消耗的最小能量。

#include <cstdio>#include <algorithm>using namespace std;const int maxn=20+5;const int inf=10000000;int dp[maxn][maxn],a[maxn][maxn];int main(){    int n,k;    while(~scanf("%d%d",&n,&k))    {        for(int i=0;i<=20;i++)            for(int j=0;j<=15;j++)                dp[i][j]=inf;        for(int j=1;j<=k;j++)        {            scanf("%d",&a[1][j]);            dp[1][j]=0;        }        for(int i=2;i<=n;i++)            for(int j=1;j<=k;j++)            {                scanf("%d",&a[i][j]);                for(int p=1;p<=k;p++)                    dp[i][j]=min(dp[i][j],dp[i-1][p]+abs(a[i][j]-a[i-1][p]));            }        int Min=inf;        for(int i=1;i<=k;i++)            Min=min(Min,dp[n][i]);        printf("%d\n",Min);    }    return 0;}


原创粉丝点击