zoukankan      html  css  js  c++  java
  • matrix---简单dp,边界边界-_-

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5569

    简单dp,恶心的边界处理,无语;

    if((i+j)%2==1)

    dp[i][j]=a[i-1][j]*a[i][j]+min(dp[i-2][j], dp[i-1][j-1]);
    dp[i][j]=min(dp[i][j], a[i][j-1]*a[i][j]+min(dp[i-1][j-1], dp[i][j-2]));

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<map>
    #include<cmath>
    #include<queue>
    using namespace std;
    #define N 1005
    #define INF 0x3f3f3f3f
    
    int a[N][N],dp[N][N], m, n;
    
    int main()
    {
        while(scanf("%d %d", &m, &n)!=EOF)
        {
            for(int i=0; i<N; i++)
                for(int j=0; j<N; j++)
                    dp[i][j]=INF;
    
            for(int i=1; i<=m; i++)
                for(int j=1; j<=n; j++)
                    scanf("%d", &a[i][j]);
                    
            dp[1][1]=0;
            dp[1][2]=a[1][1]*a[1][2];
            dp[2][1]=a[1][1]*a[2][1];
            for(int i=3; i<=m; i++)
            {
                dp[i][1]=dp[i-2][1]+a[i][1]*a[i-1][1];
                dp[i][2]=min(a[i][1]*a[i][2]+dp[i-1][1],a[i-1][2]*a[i][2]+min(dp[i-1][1], dp[i-2][2]));
            }
            for(int i=3; i<=n; i++)
            {
                dp[1][i]=dp[1][i-2]+a[1][i]*a[1][i-1];
                dp[2][i]=min(a[1][i]*a[2][i]+dp[1][i-1],a[2][i-1]*a[2][i]+min(dp[1][i-1], dp[2][i-2]));
            }
    
            for(int i=3; i<=m; i++)
            {
                for(int j=3; j<=n; j++)
                {
                    if((i+j)%2==1)
                    {
                        dp[i][j]=a[i-1][j]*a[i][j]+min(dp[i-2][j], dp[i-1][j-1]);
                        dp[i][j]=min(dp[i][j], a[i][j-1]*a[i][j]+min(dp[i-1][j-1], dp[i][j-2]));
                    }
                }
            }
            printf("%d
    ", dp[m][n]);
        }
        return 0;
    }
    /*
    3 4
    1 2 3 7
    4 5 6 8
    10 11 12 9
    
    92
    */
    View Code
  • 相关阅读:
    Manacher-模版题poj3974 hdu3068
    拓展kmp(带注释版)
    颓の第17周
    php 递归遍历目录带缩进
    php 递归遍历目录
    php session
    apache主机配置
    php环境配置的检测方法
    php 变量
    php MVC
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/4985790.html
Copyright © 2011-2022 走看看