輪廓線動態規劃

2021-06-22 15:51:55 字數 392 閱讀 3381

這類問題的共同特點是:在乙個比較「窄」的棋盤上進行複雜操作。如果採用傳統方法(以整行整列為狀態)進行動態規劃,將無法進行狀態轉移,因此只能把參差不齊的「輪廓線」作為狀態的一部分。儘管輪廓線的形態複雜,但由於棋盤比較窄,狀態總數仍然可以控制在可以接受的範圍內。直接看例題:

1,鋪放骨牌:

用1*2骨牌覆蓋n*m棋盤,有多少種方法?

分析:本題為最經典的輪廓線動態規劃問題。題目規定m*n<=100,因此m和n中至少有乙個數不超過10。因此我們把小的數賦給m,大的數賦給n。

#include #include #include using namespace std;

int n,m.cur;

const int maxn = 15;

long long d[2][1<

輪廓線動態規劃問題

好久木有更新了,感覺都有點陌生了,上個月因為各種奇怪的事情都沒有好好刷過題,做過的題也沒好好總結,so,這個月再好好努力!題目傳送 uva 11270 tiling dominoes 基礎的輪廓線動態規劃。ac include include include include include incl...

大樓輪廓線

輸入第一行乙個數表示有n座大樓,後面依次輸入n行,每一行表示大樓的起始點,終點和高度,輸出為大樓輪廓資訊 如下圖 第一行輸出為3 後面有三行輸入表示大樓的資訊 第二行為 1 3 3 第三行為 2 4 4 第三行為 5 6 1 輸出大樓輪廓資訊 第一行 1 2 3 第二行 2 4 4 第三行 5 6 ...

hdu2167 輪廓線動態規劃

輸入比較難處理,周圍8格數字不可取。因為必須要記錄當前格左上角的數字有沒有取得情況,所以所以要在一般的輪廓線上加一位,並且換行時要更新一下狀態。如下圖 狀態記錄及轉移 在取11格的數字時,我們需要判斷10,6,7,8格是否有取數字。在更新11格的狀態的同時,丟棄掉第6格的狀態值。在遇到換行時,第8格...