当前位置: 首页 > news >正文

AcWing1018.最低通行费

1018.最低通行费

一个商人穿过一个 N×N 的正方形的网格,去参加一个非常重要的商务活动。

他要从网格的左上角进,右下角出。

每穿越中间 1 个小方格,都要花费 1 个单位时间。

商人必须在 (2N−1)(2−1) 个单位时间穿越出去。

而在经过中间的每个小方格时,都需要缴纳一定的费用。

这个商人期望在规定时间内用最少费用穿越出去。

请问至少需要多少费用?

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

输入格式

第一行是一个整数,表示正方形的宽度 N

后面 N 行,每行 N个不大于 100 的正整数,为网格上每个小方格的费用。

输出格式

输出一个整数,表示至少需要的费用。

数据范围

1≤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

看完这道题就知道是道dp的题。

直接写dp方程:

状态表示

f[i][j]表示从左下角到位置 [i,j]的最小值

也就是,f[i][j] = max(f[i - 1][j], f[i][j - 1]) + w;

而第 i 层的答案只依赖于第 i 层和第 i - 1 层,容易想到滚动数组优化

在看到方程,发现不用滚动数组,直接用一维存即可(具体解释见代码)

一维转移:f[j] = max(f[j], f[j - 1]) + w;

答案表示

用二维存就是 f[n][m]

用一维存就是 f[m]

注意这道题是求最小值,所以要注意边界条件

AC代码:

#include <stdio.h>
int f[110][110], a[110][110];
int min(int a, int b)
{return a > b ? b : a;
}
int main() 
{int n, i, j;scanf("%d", &n);for(i = 1; i <= n; i++)for(j = 1; j <= n; j++)scanf("%d", &a[i][j]);f[1][1] = a[1][1];for(i = 2; i <= n; i++) f[i][1] = f[i - 1][1] + a[i][1];for(j = 2; j <= n; j++) f[1][j] = f[1][j - 1] + a[1][j];for(i = 2; i <= n; i++)for(j = 2; j <= n; j++)f[i][j] = min(f[i - 1][j], f[i][j - 1]) + a[i][j];printf("%d", f[n][n]);return 0;
}
http://www.lryc.cn/news/14865.html

相关文章:

  • 【面试题】vue中的插槽是什么?
  • Go语言结构体struct详解,Go空结构体的这些妙用你知道吗?
  • 华为OD机试 - 航天器(Python) | 机试题+算法思路+考点+代码解析 【2023】
  • 【Optional】告别丑陋判空,使用Optional类
  • 魔兽世界服务端端新手搭建教程
  • 宝塔搭建实战人才求职管理系统mobile手机端vue源码(五)
  • 生态应用:探讨 NGINX 与上下游系统集成时的开发经验
  • ArcGIS批量拼接大量栅格遥感影像:Mosaic工具
  • Flink UI部署jar包报错
  • Linux就该这么学:RAID与LVM磁盘阵列技术
  • Prometheus+Grafana监控
  • 【JUC2022】第三章 线程中断与 LockSupport
  • 数据结构刷题(七):202快乐数、1两数之和、454四数相加II、15三数之和、18四树之和
  • 华为机试题:HJ80 整型数组合并(python)
  • spring boot——自定义依赖实现自动配置
  • QMap 判断是否value是否已经存在,结合Sleep函数测试
  • vue后台管理系统项目-table选择多行数据分页列表、一键全选重置功能
  • 论文解读 | [CVPR2019] 基于自适应文本区域表示的任意形状场景文本检测
  • 2月编程语言排行榜谁还没有看?
  • nginx.conf配置方法详细介绍
  • 【微信小程序】一文带你吃透开发中的常用组件
  • Nginx 部署 Vue 项目以及 Vue 项目刷新出现 404 的问题(完整步骤)(亲测有效)
  • leaflet 加载geojson数据,随机显示不同颜色的circleMarker
  • UL grant的分配(LCP)
  • 真我air笔记本电脑怎么重装Win10系统?
  • 【闲聊杂谈】深入剖析SpringCloud Alibaba之Nacos源码
  • MySQL删除或清空表内数据的方法
  • Android 权限(二): 动态权限讲解
  • 【C++】2.类和对象(上)
  • 扬帆优配|3300点半日游!上证指数冲高回落;再迎重磅利好!