UVA 1629 記憶化搜尋

2021-07-27 16:18:36 字數 564 閱讀 5401

有乙個n行m列的蛋糕,切蛋糕,要求最後每一塊蛋糕上恰好有乙個櫻桃。問切割線總長度最小是多少?

記憶化搜尋。設dp[l][r][u][d]為切割從橫向從l到r,縱向從u到d的一塊蛋糕,切割線總長度的最小值。然後不斷dfs搜尋並記錄dp值,最後dp[0][m][n][0]即為所求。

#include 

#include

#include

#include

#define inf 1e9

using

namespace

std;

int mp[30][30];

int dp[30][30][30][30];

int countcheery(int l,int r,int u,int d)

}return num;

}int dfs(int l,int r,int u,int d)

int main()

printf("case %d: %d\n",ks++,dfs(0,m,n,0));

}return

0;}

UVa 1629 切蛋糕(記憶化搜尋)

題意 有乙個n行m列的網格蛋糕上有一些櫻桃。每次可以用一刀沿著網格線把蛋糕切成兩塊,並且只能直切不能拐彎。要求最後每一塊蛋糕上恰好有乙個櫻桃且切割線總長度最小。思路 記憶化搜尋。d u d l r 表示這個範圍內最少還需要切割多少長度。題目不難,很容易懂。1 include2 include 3 i...

uva 116 (記憶化搜尋)

題意 如圖,從左到右走,每次可以往左上 up 左 fo 左下 dn 走,當走到第一行或最後一行時可以如圖穿越。求一條權值最小的路徑,並列印字典序最小的路徑。解析 狀態轉移方程 dp i j min dp i 1 m m j 1 up dp i j 1 fo dp i 1 m j 1 dn 字典序最小...

uva10626(記憶化搜尋)

題目大意 一瓶可樂需要花8元,自動販售機只收1元,5元,10元。每次插入的錢只能買一瓶。給出n瓶可樂,請問最少插入幾次錢可以買到所需要數量的可樂。思路 一共有以下幾種情況 8個1元 插入8次 3個1元 乙個5元 插入4次 3個1元 乙個10元 插入4次 找5元 1個10元 插入1次 找2 1元 2個...