一个商人穿过一个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

样例中,最小值为109=1+2+5+7+9+12+19+21+33。

(0,0) (0,1) (0,2) (0,3) (0,4)
(1,0) (1,1)> (1,2)> (1,3)> (1,4)
(2,0) (2,1) (2,2) (2,3) (2,4)
(3,0) (3,1) (3,2) (3,3) (3,4)
(4,0) (4,1) (4,2) (4,3) (4,4)

先填红色部分的:即(0,x)和(x,0);

再从(1,1)向(1,2)填,填完一行再填下一行

自己写的:

#include <bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int pay[n+1][n+1];for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>pay[i][j];}for(int i=2;i<=n;i++){pay[1][i]+=pay[1][i-1];pay[i][1]+=pay[i-1][1];}for(int i=2;i<=n;i++){for(int j=2;j<=n;j++){pay[i][j]+=min(pay[i][j-1],pay[i-1][j]);}}cout<<pay[n][n];return 0;
}

程序答案

#include <iostream>
using namespace std;
/*设map[i][j]代表方格[i,j]的费用,
cost[i][j]代表从方格[i,j]出发到达终点的费用,则
cost[i][j] = map[i][j] + max {cost[i+1][j], cost[i][j+1] } */ const int MAX = 110;
int map[MAX][MAX] = {0};
int cost[MAX][MAX] = {0};
int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {cin >> map[i][j];}} cost[n][n] = map[n][n];//初始化第n行的最少费用for (int i = n-1; i >= 1; i--) cost[n][i] = map[n][i] + cost[n][i+1];//初始化第n列的最少费用    for (int i = n-1; i >= 1; i--) cost[i][n] = map[i][n] + cost[i+1][n];//从下向上,从右向左填表 for (int i = n-1; i >= 1; i--) {for (int j = n-1; j >= 1; j--) {if (cost[i+1][j] < cost[i][j+1])cost[i][j] = map[i][j] + cost[i+1][j];elsecost[i][j] = map[i][j] + cost[i][j+1];}}cout << cost[1][1] << endl;return 0;
}

最低通行费——动态规划相关推荐

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

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

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

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

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

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

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

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

  5. ybt1287 最低通行费

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

  6. 最低通行费(动态规划)题解

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

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

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

  8. Acwing1018. 最低通行费题解

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

  9. 1018. 最低通行费(线性DP)

    蓝桥杯国赛指南,详情见专栏 文章目录 Question Ideas Code Question 一个商人穿过一个 N×N 的正方形的网格,去参加一个非常重要的商务活动. 他要从网格的左上角进,右下角出 ...

最新文章

  1. 光测力学-栅线投影/面结构光技术
  2. 简书上的大牛总结的 ServerSocket Accept() 的确是阻塞方法 与猜想一致 一些理解 转载如下
  3. 智源大会参会指南:4天 100+场顶尖报告,硬核高密度,如何才能不留遗憾?
  4. JavaScript深入之执行上下文栈
  5. 纲:散户炒股存两大弱势 我自己不炒也不建议小散炒
  6. 二叉树题目---3 另一个树的子树 AND 二叉树最大深度
  7. 当开源奔向物流,阿里云 PolarDB-X 数据库与韵达携手的背后
  8. 批量建模:一元线性回归
  9. 颜色基础知识——CIE 1931色度坐标
  10. 计算机科学期刊重复率要求,计算机科学与应用期刊
  11. vue 动态设置浏览器标题
  12. linux发送短信的脚本,shell监控系统资源并通过短信报警的脚本
  13. python——自动化报告word(1)
  14. ChatGPT插件与简要介绍(已收集70个)了解添加插件后的chatgpt能做什么
  15. python中的方法是什么_Python方法
  16. Storm专题一、Storm DRPC 分布式计算
  17. GoLang之iface 和 eface 的区别是什么?
  18. Python第八课(函数1)
  19. linux lp0设备,P1108打印机插入Linux设备USB口后自动reset
  20. 什么是监控系统云台?

热门文章

  1. 电容充放电 课堂笔记2
  2. 怎样用Keil5烧写现成的hex文件
  3. webuploader使用
  4. 《机器学习》及实战四、贝叶斯理论及实战
  5. 【Darknet】改进版Darknet
  6. 讯客分类信息php,讯客分类信息互动版 v1.3
  7. python 继承(史上最详细版本)
  8. 万由nas系统安装MySQL_蜗牛星际矿机折腾记1-安装万由U-NAS OS
  9. 进一步做好全国计算机信息高新技术考试推广工作的实施意见,关于印发《进一步做好全国计算机信息高新技术考试推广工作的实施意...
  10. 【系统环境变量被删除如何恢复】