日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

hdu2067 简单dp或者记忆化搜索

發(fā)布時(shí)間:2025/6/17 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu2067 简单dp或者记忆化搜索 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題意:


小兔的棋盤

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6193 Accepted Submission(s): 3373


Problem Description 小兔的叔叔從外面旅游回來(lái)給她帶來(lái)了一個(gè)禮物,小兔高興地跑回自己的房間,拆開(kāi)一看是一個(gè)棋盤,小兔有所失望。不過(guò)沒(méi)過(guò)幾天發(fā)現(xiàn)了棋盤的好玩之處。從起點(diǎn)(0,0)走到終點(diǎn)(n,n)的最短路徑數(shù)是C(2n,n),現(xiàn)在小兔又想如果不穿越對(duì)角線(但可接觸對(duì)角線上的格點(diǎn)),這樣的路徑數(shù)有多少?小兔想了很長(zhǎng)時(shí)間都沒(méi)想出來(lái),現(xiàn)在想請(qǐng)你幫助小兔解決這個(gè)問(wèn)題,對(duì)于你來(lái)說(shuō)應(yīng)該不難吧!
Input 每次輸入一個(gè)數(shù)n(1<=n<=35),當(dāng)n等于-1時(shí)結(jié)束輸入。
Output 對(duì)于每個(gè)輸入數(shù)據(jù)輸出路徑數(shù),具體格式看Sample。
Sample Input 1 3 12 -1
Sample Output 1 1 2 2 3 10 3 12 416024



思路:
? ? ? ?簡(jiǎn)單dp, 因?yàn)槭乔笞疃?#xff0c;所以當(dāng)前狀態(tài)只能由上面或者左面過(guò)來(lái)(上半部分三角形),由于不能過(guò)對(duì)角線,我們可以只求一半,也就是上面三角形,最后乘2就行了,直接dp打表,或者記憶化搜索,對(duì)于記憶化搜索也可以1邊記憶化搜索打表,就是最后在轉(zhuǎn)換矩陣,終點(diǎn)變成了起點(diǎn),起點(diǎn)變終點(diǎn)什么的,不難,我下面的是dp打表,和直接記憶化搜索的代碼,記憶化搜索打表的沒(méi)寫(xiě),想寫(xiě)的直接在記憶或搜索的那個(gè)改改就行了。


dp

#include<stdio.h> #include<string.h> __int64 dp[40][40] = {0};void solve(int n) {dp[1][1] = 1;for(int i = 1 ;i <= n ;i ++)for(int j = i ;j <= n ;j ++){ if(i == 1 && j == 1) continue;dp[i][j] = dp[i][j-1] + dp[i-1][j];} }int main () {int n ,cas = 1;solve(36);while(~scanf("%d" ,&n) && n != -1){printf("%d %d %I64d\n" ,cas ++ ,n ,dp[n+1][n+1] * 2);}return 0; }

記憶化搜索


#include<stdio.h> #include<string.h> int mark[40][40]; __int64 dp[40][40]; int n;__int64 DFS(int x ,int y) {if(x == n + 1 && y == n + 1) return 1;if(mark[x][y]) return dp[x][y];__int64 sum = 0;if(x + 1 <= n + 1 && x + 1 <= y)sum += DFS(x + 1 ,y);if(y + 1 <= n + 1)sum += DFS(x ,y + 1);mark[x][y] = 1;dp[x][y] = sum;return sum; }int main () {memset(mark ,0 ,sizeof(mark));int cas = 1;while(scanf("%d" ,&n) && n != -1){memset(mark ,0 ,sizeof(mark));printf("%d %d %I64d\n" ,cas ++ ,n ,DFS(1 ,1) * 2);}return 0; }

總結(jié)

以上是生活随笔為你收集整理的hdu2067 简单dp或者记忆化搜索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。