動態規劃求解矩陣累計和最大的路徑
/**
* 有一個 M x N 的矩陣,其中每個格子裡面都有特定的錢。
* 左上角走到右下角,只能向右或者向下走,問怎麼走才能撿到最多的錢。
* 輸出撿錢的路徑。
* 解析: 動態規劃。 首先找到子結構,構造遞推式。
* 對於每個位置能撿到的最多的錢是:
* a[i][j] = max{a[i-1][j] + w[i][j],a[i][j-1] + w[i][j]}
*/
#include <stdio.h>
#define M 5
#define N 4
int w[M][N]; //矩陣
int a[M][N]; //當前撿到的最大的錢的值
int path[M][N]; //記錄路徑,1表示從上面撿著錢下來,0表示從左邊撿著錢過來
void find_path(){
int i,j;
a[0][0] = w[0][0];
//初始化左邊界
for(i=0;i<M;i++){
a[i][0] = a[i-1][0] + w[i][0];
path[i][0] = 1;
}
//初始化右邊界
for(j=0;j<N;j++){
a[0][j] = a[0][j-1] + w[0][j];
path[0][j] = 0;
}
//兩個迴圈開始自底向上求解
for(i=1;i<M;i++){
for(j=1;j<N;j++){
int up = a[i-1][j] + w[i][j];
int left = a[i][j-1] + w[i][j];
if(up > left){
a[i][j] = up;
path[i][j] = 1;
}
else{
a[i][j] = left;
path[i][j] = 0;
}
}
}
}
int main(){
int tmp[M][N] = {{4,3,12,1},{11,7,4,2},{6,20,15,2},{4,5,8,1},{3,3,4,6}};
int i,j;
//初始化矩陣
for(i=0;i<M;i++)
for(j=0;j<N;j++){
w[i][j] = tmp[i][j];
}
printf("\n\n");
//自底向上求解
find_path();
//列印出路徑以及每個位置能撿到的最多的錢數
for(i=0;i<M;i++){
for(j=0;j<N;j++)
printf("%5d(%d)",a[i][j],path[i][j]);
printf("\n");
}
return 0;
}
執行結果:
相關文章
- 矩陣連乘(動態規劃演算法)矩陣動態規劃演算法
- 矩陣連乘問題 Python 動態規劃矩陣Python動態規劃
- 動態規劃最大欄位和動態規劃
- 動態規劃之最短路徑和動態規劃
- 動態規劃求解最大子段和 (兩種寫法+還原最優解)動態規劃
- 矩陣中的路徑矩陣
- 動態規劃_備忘錄法_矩陣鏈乘問題動態規劃矩陣
- 動態規劃之最長公共子序列求解動態規劃
- 禮物的最大價值(一維動態規劃&二維動態規劃)動態規劃
- 動態規劃如何輸出路徑?動態規劃
- 路徑規劃: 淺談路徑規劃演算法演算法
- JZ-065-矩陣中的路徑矩陣
- 動態規劃求解最長上升子序列問題動態規劃
- 強化學習(三)用動態規劃(DP)求解強化學習動態規劃
- 【三維路徑規劃】基於RRT三維路徑規劃
- 動態規劃--三角形最小路徑和動態規劃
- 動態規劃---例題3.最大子段和問題動態規劃
- [動態規劃] 五、三角形的最小路徑和動態規劃
- 路徑規劃演算法 - 求解最短路徑 - Dijkstra(迪傑斯特拉)演算法演算法
- 第四章:多維陣列和矩陣 ------------- 4.8 子矩陣的最大累加和陣列矩陣
- 【動態規劃】用一維和二維解決不同路徑動態規劃
- java 動態規劃(三角形最短路徑和)Java動態規劃
- 矩陣中移動的最大次數.18076762矩陣
- 分治法 && 動態規劃 洛谷P1115 最大子段和動態規劃
- Leetcode 題解系列 -- 股票的最大利潤(動態規劃)LeetCode動態規劃
- Excel中的規劃求解。Excel
- 機器人路徑規劃其一 Dijkstra Algorithm【附動態圖原始碼】機器人Go原始碼
- 高德地圖導航和路徑規劃地圖
- 順序表應用8:最大子段和之動態規劃法動態規劃
- [LeetCode 中等 動態規劃 ]221. 最大正方形LeetCode動態規劃
- 磁帶最大利用率問題——動態規劃動態規劃
- 世界冠軍之路:菜鳥車輛路徑規劃求解引擎研發歷程
- #1502 : 最大子矩陣矩陣
- 劍指offer:JZ12 矩陣中的路徑矩陣
- 簡單的路徑規劃案例分享
- DP 動態規劃入門 一維陣列動態規劃陣列
- 遞迴、分治和動態規劃遞迴動態規劃
- 動態規劃求解數字數字三角形動態規劃
- 動態規劃動態規劃