uva 926
題意:給定n*n的街道圖和起始點,有些街道不能走,問從起點到終點有多少種走法。
很基礎的dp、遞推,但是有兩個地方需要注意,在標記當前點某個方向不能走時,也要同時標記對應方向上的對應點。另一點就是要開long long存。要是不考慮障礙的話,按組合數算從(1,1)走到(n,n)需要2*n步,東、北方向各走n步,結果就是c(n/2,n),這個結果會很大!!!
1 #include2 #include3 #include4using
namespace
std;
5 typedef long
long
ll;6
const
int n = 35;7
ll dp[n][n];
8int g[n][n][5];9
intn, m, sx, sy, ex, ey;
1011
intmain()
1231 dp[sx][sy] = 1;32
for (int i = sx; i <= ex; i++) 38}
39 cout << dp[ex][ey] <41return0;
42 }
UVa 825 簡單dp,遞推
uva 825 題意 給定乙個網格圖 街道圖 其中有一些交叉路口點不能走。問從西北角走到東南角最短走法有多少種。好像沒看到給資料範圍。簡單的遞推吧,當然也就是最簡單的動歸了。顯然最短路長度就是row col。求種數就從開始往後推。由於第一行第一列也有可能是障礙點,所以初始化時要注意這一點,或者乾脆就...
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 這個多段圖的特點是每個結點一步只能走到下乙個階段的結點,因此我們可以...