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

解题思路:dp[i][j]表示到达(i,j)位置时的最小值。由于目标式的特点,我们一次需要走两格,自然而然转移方程也是两次走:

dp[i][j]->dp[i+2][j],dp[i][j]->dp[i][j+2],dp[i][j]->dp[i+1][j+1]。属于简单的dp问题

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 1005;
const int inf = 0x3f3f3f3f;
int n,m,mat[maxn][maxn];
int dp[maxn][maxn];int main()
{while(scanf("%d%d",&n,&m)!=EOF){memset(dp,inf,sizeof(dp));for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++)scanf("%d",&mat[i][j]);dp[1][2] = mat[1][1] * mat[1][2];dp[2][1] = mat[1][1] * mat[2][1];for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++){if(dp[i][j] == inf) continue;if(i + 2 <= n)dp[i+2][j] = min(dp[i+2][j],dp[i][j] + mat[i+1][j] * mat[i+2][j]);if(j + 2 <= m)dp[i][j+2] = min(dp[i][j+2],dp[i][j] + mat[i][j+1] * mat[i][j+2]);if(i + 1 <= n && j + 1 <= m){dp[i+1][j+1] = min(dp[i+1][j+1],dp[i][j] + mat[i][j+1] * mat[i+1][j+1]);dp[i+1][j+1] = min(dp[i+1][j+1],dp[i][j] + mat[i+1][j] * mat[i+1][j+1]);}}printf("%d\n",dp[n][m]);}return 0;
}

hdu 5569(二维dp,水题)相关推荐

  1. P1719 最大加权矩形(二维dp)

    P1719 最大加权矩形(二维dp) 原题戳这里 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑 ...

  2. P2380 狗哥采矿 (二维dp)

    原题链接:狗哥采矿 - 洛谷 思路:我一开始想的是,一个点往左走还是往上走与 它上面和左边的点走的方向有关系,但是感觉复杂交错.....然后看到了大佬的二维dp,其实Aij往左走,就让它左边的这一条都 ...

  3. P2163 [SHOI2007]园丁的烦恼(二维数点模板题)

    P2163 [SHOI2007]园丁的烦恼 题意: 在一个二维平面内有一些点,给你一个左上角和右下角的点,问这个范围内有多少点 题解: 二维数点模板题 我们设F(a,b)表示以(0,0)为左下角,(a ...

  4. 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理

    problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  5. 寒假每日一题题解(1.29)摘花生(DP水题)

    摘花生 Hello Kitty想摘点花生送给她喜欢的米老鼠. 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来. 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过 ...

  6. Efficient Exchange DP 二维DP

    YouhaverecentlyacquiredanewjobattheBankforAcquiring Peculiar Currencies. Here people can make paymen ...

  7. CDOJ 1347柱爷的矩阵(二维dp)

    柱爷的矩阵 Time Limit: 125/125MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Stat ...

  8. HDU-1493 QQpet exploratory park(概率+二维dp)

    第一次做dp 题目 扔骰子,给出扔出每个点的概率,求出到达特定点的概率是多少..这里所有特定点的和并不是100%,每个特定点的计算是将每一次(共十次)经过它的概率都加起来求和.得到100%的情况是将每 ...

  9. 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)

    [题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...

最新文章

  1. locust入门:单机使用locust运行压力测试
  2. 简述安装Tsurugi Linux发行版
  3. javascript中apply、call和bind的区别
  4. 关于HTML页以Get方法向asp.net页面传值乱码的解决
  5. HealthKit开发教程之HealthKit的复合数据
  6. ios xmlrpc
  7. C专家编程—使用unsigned int可能产生的Bug(1)
  8. android实时声音信号波形_Android输出正弦波音频信号(左右声道对称)-阿里云开发者社区...
  9. Django中的Model模型
  10. 十年磨一剑!支付宝自研数据库OceanBase通过阿里云向全球开放
  11. 重磅!GroupFace 人脸识别,刷新 9 个数据集SOTA
  12. 【华为云实战开发】11.如何快速开展嵌入式开发项目?
  13. 如何才能让项目团队高效稳定?
  14. python实现arxiv论文数据解析处理
  15. C语言学习——初始C语言
  16. MySQL 数值拼接字符串
  17. AcWing 1097 池塘计数
  18. opencv3中的glob函数读取文件夹中数据
  19. 室内定位——视觉方法的发展
  20. Oracle Livelabs实验: Setting Up Active Data Guard For On-Premises

热门文章

  1. 大地发生了变化写具体_小学语文三年级下册期末检测卷 (2)
  2. 怎么把视频里的音乐提取出来
  3. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已完整开源于 Github)...
  4. Java中String类型的数据比较
  5. Tomcat7调试运行环境搭建与源代码分析入门
  6. centos 5 6安装本地yum源
  7. list_for_each()与list_for_each_safe()
  8. 微软社区精英计划 - 你会如何回答【6月26日】北京.Net学习活动QA时提出的问题...
  9. C#项目打包,并自动安装SQL数据库(转)
  10. 域客户端的计算机更名