hdu3779 記憶化搜尋

2021-06-04 18:34:11 字數 595 閱讀 5171

//兩列火車入站,重新排列的車廂符不符合要求

//記憶化搜尋,ans[i][j]記錄的是第一列火車的第i節和第二列火車的第j列在組合後的序列裡找不找的到

//如果找的到就標記為1,因為是從前到後搜尋,所以在ans[n][m]=1時,表示符合

#include #include#includeusing namespace std;

#define n 1005

bool ans[n][n];

int str1[n],str2[n],str3[n*2];

int n,m,t;

void solve(int n1,int n2)

if(ans[n1][n2]) return ;

ans[n1][n2]=1;

if(str3[n1+n2+1]==str1[n1+1]&&!ans[n][n])

solve(n1+1,n2);

if(str3[n1+n2+1]==str2[n2+1]&&!ans[n][n])

solve(n1,n2+1);

}int main()

return 0;

}

hdu2452 記憶化搜尋

一顆樹,邊是單向的,每個節點有一定的權值,要你從根節點走到葉子節點,走到第偶數節點時,使後面的權值和最小 走到第奇數節點時,使後面的權值和最大 邊鍊錶儲存,並查集查詢根節點 用val i 0 表示第i個節點是偶數節點的值和val i 1 表示第i個節點是奇數節點的值 遞迴的計算,因為節點很多,所以要...

hdu1069 記憶化搜尋

此題思路還是比較清晰的,對於每個x,y,z,都會有三種情況,dp i 表示把第i個放在最下面得到的最大高度,狀態轉移方程為dp i max dp i dp j height 這裡的j要滿足能夠放在i上面,height為第i個矩形的高度 如下 include include include inclu...

hdu 1078 記憶化搜尋

hdu 1078 題意 每次可以朝乙個方向走k格,必須走到乙個數值比當前值大的點,問最多數值加起來能有多少,走到不能再走。一開始定義錯了,定義dp i j 為以 i,j 為終點時所能得到的最大值。dp i t dx j t dy max dp i t dx j t dy dp i j a i t d...