草庐IT

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

Esico's Blog 2023-03-28 原文

题目链接


题目描述

一个商人穿过一个 N×N 的正方形的网格,去参加一个非常重要的商务活动。
他要从网格的左上角进,右下角出。
每穿越中间 1 个小方格,都要花费 1 个单位时间。
商人必须在 (2N−1) 个单位时间穿越出去。
而在经过中间的每个小方格时,都需要缴纳一定的费用。
这个商人期望在规定时间内用最少费用穿越出去。
请问至少需要多少费用?
注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。

题目模型

  • 子题目:摘花生
  • 因为要在(2N-1)个单位时间穿越出去,而从(1,1)走到(n,n)正好需要(2N-1)个单位时间,所以不能走回头路。

题目代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;

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];
    
    memset(f, 0x3f, sizeof f);  //因为求min,所以初始化为最大,并且需要考虑边界问题
    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];  //(1,1)需在循环内特判,否则会出错
            else f[i][j] = min(f[i - 1][j], f[i][j - 1]) + w[i][j];
        }
           

    cout << f[n][n] << endl;
    
    return 0;
}

有关AcWing 1018. 最低通行费(线性DP)的更多相关文章

  1. 线性代数让我想想:快速求三阶矩阵的逆矩阵 - 2

    快速求三阶矩阵的逆矩阵前言一般情况下,我们求解伴随矩阵是要注意符号问题和位置问题的(如下所示)A−1=1[  ][−[  ]−[  ]−[  ]  −[  ]]=A−1=1[  ][   M11−[M12]   M13−[M21]   M22−[M23]     M31−[M32]   M33]⊤\begin{aligned}&A^{-1}=\frac{1}{[\\]}\left[\begin{array}{cccccc}&-[\\]&\\-[\\]&&-[\\]\\\\&-[\\]&\\\end{array}\right]=\\\\&A^{-1}=\frac{1}{[\\]}\left[\b

  2. 用于进行线性或非线性最小二乘近似的 Ruby 库? - 2

    是否有Ruby库允许我对一组数据进行线性或非线性最小二乘法逼近。我想做的是:给定一系列[x,y]数据点针对该数据生成线性或非线性最小二乘法近似值库不必弄清楚它是否需要进行线性或非线性近似。库的调用者应该知道他们需要什么类型的回归我不想尝试移植某些C/C++/Java库来获得此功能,因此我希望有一些现有的Ruby库可供我使用。 最佳答案 尝试使用“statsample”gem。您可以使用下面提供的示例执行对数、指数、幂或任何其他转换。我希望这有帮助。require'statsample'#IndependentVariablex_da

  3. ruby-on-rails - 运行 Ruby on Rails 的最低规范 VPS - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭2年前。Improvethisquestion我想开始使用我的第一个RubyonRails应用程序。它会拉出一张图片,并显示一些关于图片的文本,并有一个小框来写一些关于图片的文本

  4. 图形学-变换(平移矩阵,旋转矩阵,缩放矩阵,线性变换,仿射变换,齐次坐标) - 2

    1.变换1.1什么是变换?变换(Transform)是计算机图形学中非常重要的一部分。变换包含模型变换(Modelingtransform)以及视图变换(Viewtransform)。模型变换指的是变换模型(被拍摄物体)的位置,大小和角度;视图变换指的是变换照相机的位置和角度。从相对运动的角度来看,两种变换是可以相互转化的。1.2模型变换1.2.1二维变换缩放变换缩放变换(Scale)中,如果一个图片以原点(0,0)为中心缩放𝑠倍。那么点(𝑥,𝑦)变换后数学形式可以表示为写成矩阵形式为:当然,我们也可以给x轴和y轴不同的缩放倍数𝑠𝑥和𝑠𝑦。在非均匀情况下,缩放变换的矩阵形式为反射变换反射变换(

  5. ruby - 如何为 Gemfile 指定最低 bundler 版本? - 2

    当我的Gemfile使用:mri_20时,以前版本的bundler不支持它,是否添加一个好主意gem'bundler','~>1.3.5'到Gemfile?有没有更好的方法来强制执行最低bundle程序版本? 最佳答案 这不会对用于管理Gemfile中的gem的bundler产生任何影响。使用的bundler版本是您当前的ruby​​环境中可用的版本。管理此问题的最佳方法是使用gemset-您可以使用已知的可用版本的bundler创建gemset,并在处理该项目时始终切换到该gemset。要检查bundler版本,请运行:$bund

  6. ruby - 如何在 Gemfile 中指定最低 Ruby 版本? - 2

    我知道我可以像这样在Gemfile中指定Ruby版本:ruby'2.0.0'但是,我不想设置确切的Ruby版本,而是希望能够指定最低Ruby版本,以便我的脚本与新版本的Ruby保持兼容。 最佳答案 您可以改为引发异常:raise'Rubyshouldbe>2.0'unlessRUBY_VERSION.to_f>2.0 关于ruby-如何在Gemfile中指定最低Ruby版本?,我们在StackOverflow上找到一个类似的问题: https://stacko

  7. 数据结构笔记NO.1(绪论、线性表、栈队列和矩阵的压缩存储) - 2

    第一章、绪论1、数据结构三要素:逻辑结构、存储结构(物理结构)、数据的运算。(1)逻辑结构:是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。(2)存储结构(物理结构):是指数据在计算机中的表示(又称映像),是用计算机语言实现的逻辑结构,它依赖于计算机语言。顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现(e.g.数组)。优点:①可以实现随机存取;②每个元素占用最少的存储空间;缺点:只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片;链式存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指示

  8. ruby - 在哈希中查找最低值 - 2

    a={1=>["walmart","walmart.com",300.0],2=>["amazon","amazon.com",350.0],...}如何在其数组中找到浮点值最小的元素? 最佳答案 min_by可作为Enumerable模块中的方法使用。它获取Hash中所有值的数组,然后根据每个数组的最后一个元素选择最小值。a.values.min_by(&:last) 关于ruby-在哈希中查找最低值,我们在StackOverflow上找到一个类似的问题:

  9. ruby - 从 Ruby 中的数组中查找最高、最低、总计、平均值和中位数 - 2

    我正在用Ruby创建一个箱线图生成器,我需要计算一些东西。假设我有这个数组:arr=[1,5,7,2,53,65,24]如何从上述数组中找到最低值(1)、最高值(65)、总计(157)、平均值(22.43)和中位数(7)?谢谢 最佳答案 lowest=arr.minhighest=arr.maxtotal=arr.inject(:+)len=arr.lengthaverage=total.to_f/len#to_fsowedon'tgetanintegerresultsorted=arr.sortmedian=len%2==1?so

  10. ruby - 在 Ruby 中创建一个线性嵌套哈希? (我来自 Perl) - 2

    我是一个Perl的人,我已经做了一段时间这样的哈希:my%date;#Assumethescalarsarecalledwith'my'earlier$date{$month}{$day}{$hours}{$min}{$sec}++现在我正在学习Ruby,到目前为止我发现使用这棵树是做很多键和一个值的方法。有什么方法可以只用一行来使用我在Perl中使用的简单格式吗?@date={month=>{day=>{hours=>{min=>{sec=>1}}}}} 最佳答案 不幸的是,没有简单实用的方法。一个Ruby等价物将是一个丑陋、丑陋

随机推荐