• hdu-5569matrix(dp)


    http://acm.hdu.edu.cn/showproblem.php?pid=5569;

    题目意思:

    从(1,1)点出发只能向右和向下走,到达(n,n)点时所得到的价值最小,

    价值是Let the numbers you go through become an array a1,a2,...,a2k. The cost is a1a2+a3a4+...+a2k1a2k,每个

    格都有相应的价值ak.

    思路:dp,状态转移方程是如果(i+j)%2==1-- dp[i][j]=min(dp[i-1][j]+a[i][j]*a[i-1][j],dp[i][j-1]+a[i][j-1]*a[i][j]);

    如果(i+j)%2==0--dp[i][j]=min(dp[i-1][j],dp[i][j-1]);

     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<string.h>
     5 #include<stdlib.h>
     6 typedef long long LL;
     7 LL dp[1005][1005];
     8 LL a[1005][1005];
     9 using namespace std;
    10 int main(void)
    11 {
    12     int n,i,j,k,p,q;
    13     while(scanf("%d %d",&p,&q)!=EOF)
    14     {
    15         for(i=1; i<=p; i++)
    16         {
    17             for(j=1; j<=q; j++)
    18             {
    19                 scanf("%lld",&a[i][j]);
    20             }
    21         }
    22         memset(dp,0,sizeof(dp));
    23         for(i=1; i<=p; i++)//初始化边界当j为1时,dp[i][j]只能从dp[i-1][1]转移而来
    24         {
    25             if((i+1)%2==1)
    26             {
    27                 dp[i][1]=dp[i-1][1]+a[i][1]*a[i-1][1];
    28             }
    29             else dp[i][1]=dp[i-1][1];
    30         }
    31 
    32         for(i=1; i<=q; i++)//初始化边界当i为1时,dp[i][j]只能从dp[1][j-1]转移而来
    33         {
    34             if((i+1)%2==1)
    35             {
    36                 dp[1][i]=dp[1][i-1]+a[1][i-1]*a[1][i];
    37             }
    38             else dp[1][i]=dp[1][i-1];
    39         }
    40         for(i=2; i<=p; i++)
    41         {
    42             for(j=2; j<=q; j++)
    43             {
    44                 if((i+j)%2==1)
    45                     dp[i][j]=min(dp[i-1][j]+a[i][j]*a[i-1][j],dp[i][j-1]+a[i][j-1]*a[i][j]);
    46                 else dp[i][j]=min(dp[i-1][j],dp[i][j-1]);
    47             }
    48         }
    49         printf("%d
    ",dp[p][q]);
    50     }
    51     return 0;
    52 }
    油!油!you@
  • 相关阅读:
    Design Thinking 设计思维
    SELECT小技巧
    网站架构
    代码生成器重构
    如何监控你的鼠标
    Asp.net超轻异步框架
    跨线程修改UI控件
    NPOI组件
    浅析Linux计算机工作机制
    VS2010单元测试
  • 原文地址:https://www.cnblogs.com/zzuli2sjy/p/4997416.html
Copyright © 2020-2023  润新知