描述

一个商人穿过一个 N*N 的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。

这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?

注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。

输入

第一行是一个整数,表示正方形的宽度N (1 <= N < 100);
后面 N 行,每行 N 个不大于 100 的整数,为网格上每个小方格的费用。

输出

至少需要的费用。

样例输入

5
1 4 6 8 10
2 5 7 15 17
6 8 9 18 20
10 11 12 19 21
20 23 25 29 33

样例输出

109

思路:

属于动态规划求最小值模型。关键是初始化边界。

AC代码:

#include<iostream>
using namespace std;
const int N = 110,INF = 1e9;
int n;
int w[N][N];
int f[N][N];int main(){cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>w[i][j];//方法一:// for(int i=1;i<=n;i++){//     f[i][1] = f[i-1][1]+w[i][1];// }// for(int i=1;i<=n;i++){//     f[1][i] = f[1][i-1]+w[1][i];// }// for(int i=2;i<=n;i++)//     for(int j=2;j<=n;j++)//         f[i][j] = min(f[i-1][j],f[i][j-1])+w[i][j];//方法二:for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(i == 1&&j == 1) f[i][j] = w[i][j];else{f[i][j] = INF;if(i>1) f[i][j] = min(f[i][j],f[i-1][j]+w[i][j]);if(j>1) f[i][j] = min(f[i][j],f[i][j-1]+w[i][j]);}}cout<<f[n][n]<<endl;
}

plus:

第二种方法初始化地很巧妙。

最低通行费(动态规划)题解相关推荐

  1. 最低通行费——动态规划

    一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动.他要从网格的左上角进,右下角出.每穿越中间1个小方格,都要花费1个单位时间.商人必须在(2N-1)个单位时间穿越出去.而在经过中间的 ...

  2. AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】

    AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...

  3. 信息学奥赛一本通 1287:最低通行费 | OpenJudge NOI 2.6 7614:最低通行费

    [题目链接] ybt 1287:最低通行费 OpenJudge NOI 2.6 7614:最低通行费 [题目考点] 1. 动态规划:坐标型动规 [解题思路] 解法1:坐标型动规 限定商人必须在2N-1 ...

  4. 一本通 1287:最低通行费 C++

    这题我们用递推(其实就是非常弱鸡的动态规划)做 上代码: //最低通行费 #include <iostream>using namespace std;const int N = 105; ...

  5. [AcWing] 1018. 最低通行费(C++实现)数字三角形模型

    [AcWing] 1018. 最低通行费(C++实现)数字三角形模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 ...

  6. ybt1287 最低通行费

    ybt1287 最低通行费 时空限制    1000ms/64MB [题目描述] 一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动.他要从网格的左上角进,右下角出.每穿越中间1个小方 ...

  7. Acwing1018. 最低通行费题解

    题目描述 一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动. 他要从网格的左上角进,右下角出. 每穿越中间1个小方格,都要花费1个单位时间. 商人必须在(2N-1)个单位时间穿越出去 ...

  8. 数据结构与算法学习⑥(动态规划 题解 背包和打家劫舍问题)

    数据结构与算法学习⑥(动态规划 动态规划 1.初识动态规划 1.1.从贪心说起 1.1.1.贪心的特点 1.1.2.贪心的局限性 1.1.3.贪心失效后怎么办 1.1.4.从最优化问题到递归 1.2. ...

  9. [Leedcode][JAVA][第983题][最低票价][动态规划]

    [问题描述][第983题][最低票价][中等] 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出.每一项是一个从 1 到 ...

最新文章

  1. kibana操作elasticsearch:查看索引库数据
  2. php5中Xdebug配置安装步骤介绍
  3. 如何完全屏蔽Chrome的提示:请停用以开发者模式运行的扩展程序
  4. JavaBeginnersTutorial 中文系列教程·翻译完成
  5. SAP License:由师姐的包包所想到如何能够掌握客户的需求
  6. 计算机nit证书怎么学,计算机等级考试证书和NIT可以抵免自考中哪些课程?
  7. mysql xmlhttp_php_xmlhttp 乱码问题解决方法
  8. Django restframework中Serializer序列化器-用法详解
  9. Spring框架概要
  10. 魔百和CM311-1a YST免拆机卡刷精简固件
  11. 《剑破武林》用户注册协议
  12. WP模板阁怎么样?能买吗
  13. 安卓古筝软件_新手如何自学乐器|零基础自学小提琴/吉他/电子琴/尤克里里/竖笛/电子鼓软件超详细测评+推荐...
  14. 鸿蒙系统打王者荣耀卡不卡,鸿蒙系统会不会越用越卡?鸿蒙系统会影响王者荣耀吗?...
  15. 手机录屏并转换成gif动图
  16. 【新手上路】Java必备小游戏——Flappy Bird(飞翔的小鸟)
  17. 利用MyBatis实现CRUD操作
  18. nofollow标签的作用有重大变化
  19. position:absolute相对于谁定位
  20. 在word中使用MathType

热门文章

  1. java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z错误
  2. iOS绘图——Quartz 2D使用方法
  3. VOXEL 技术在即时渲染地形中的应用
  4. 关于steamos的杂谈
  5. 优质的免费HTML编辑器推荐
  6. 糖尿病,7个食疗小方法法,建议学起来
  7. 打印后台程序服务没有运行
  8. Celebrated Dictum, 名人名言录
  9. Excel催化剂图表系列之一整套IBCS图表大放送,一秒变图表专家
  10. 原创连载《第1篇:道法自然 》