UVa 825 簡單dp,遞推

2022-08-18 09:57:12 字數 847 閱讀 8034

uva 825

題意:給定乙個網格圖(街道圖),其中有一些交叉路口點不能走。問從西北角走到東南角最短走法有多少種。(好像沒看到給資料範圍。、。)

簡單的遞推吧,當然也就是最簡單的動歸了。顯然最短路長度就是row+col。求種數就從開始往後推。

由於第一行第一列也有可能是障礙點,所以初始化時要注意這一點,或者乾脆就只初始化f[0][1]=1。i、j都從1開始遞推到更方便。還有題目輸入輸出比較坑。輸入我用的是sstream和stream,方便很多,要不還要按照字串輸入再手動轉化成數字。輸出讓每組隔一行,但最後一組沒有,用while(t)控制。

1 #include2 #include3 #include4 #include5 #include

6 #include7

using

namespace

std;

8const

int maxn = 4006;9

intg[maxn][maxn], f[maxn][maxn];

10int

row, col, res;

1112

intmain()

1333

}34 memset(f, 0, sizeof

(f));

35 f[0][1] = 1;36

for (int i = 1; i <= row; i++) 41}

42 printf("

%d\n

", f[row][col]);

43if (t) printf("\n"

);44}45

return0;

46 }

UVa 926 簡單dp,遞推

uva 926 題意 給定n n的街道圖和起始點,有些街道不能走,問從起點到終點有多少種走法。很基礎的dp 遞推,但是有兩個地方需要注意,在標記當前點某個方向不能走時,也要同時標記對應方向上的對應點。另一點就是要開long long存。要是不考慮障礙的話,按組合數算從 1,1 走到 n,n 需要2 ...

uva11795 簡單狀態壓縮DP

一看到n 16就想到狀態壓縮dp了,而且只要儲存這個狀態就行了 轉移時也用狀態壓縮的轉移方法,比較兩個二進位制數,就能知道能否從已知狀態轉移到需要的狀態 開始沒看到題目給的就是二進位制數,自己還轉換成了二進位制 還有要記得用longlong 不能因為這個wa 還有位運算還不是很熟悉,可以用異或來去掉...

uva11137遞推和DP其實有些類似

這道題大白書上是按遞推講的 分析 建立多段圖。節點 i,j 表示 使用不超過i的整數的立方,累加和為j 這個狀態,設d i,j 為從 0,0 到 i,j 的路徑條數,則最終答案為d 21,n 因為對於題目範圍,22 22 22 n 這個多段圖的特點是每個結點一步只能走到下乙個階段的結點,因此我們可以...