动态规划2
Posted 于光远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划2相关的知识,希望对你有一定的参考价值。
有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。 给定一个矩阵map及它的行数n和列数m
#include <algorithm> #include <iostream> using namespace std; #include <vector> int MinimumPath(int n, int m){ vector<vector<int>> a(n, vector<int>(m)); vector<vector<int>> b(n+1, vector<int>(m+1)); //初始化各个位置的值 for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ if (i == 0 && j == 0){ a[i][j] = 1; } else if (j == 0){ a[i][j] = a[i - 1][m - 1] + 1; } else{ a[i][j] = a[i][j-1] + 1; } cout << a[i][j] << " "; } cout << endl; } // 每一个位置的值 都等于它前一个位置+要到达的位置。 for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ if (i == 0 && j == 0){ b[i+1][j+1] = a[i][j]; } else{ b[i+1][j+1] = min(b[i + 1][j] + a[i][j], b[i][j + 1] + a[i][j]); } } } return b[n][m]; } int main(void) { cout << MinimumPath(10, 10) << endl;; }
以上是关于动态规划2的主要内容,如果未能解决你的问题,请参考以下文章
算法动态规划 ① ( 动态规划简介 | 自底向上的动态规划示例 | 自顶向下的动态规划示例 )