hdu 3709(數字dp 記憶化搜尋)

2021-06-22 21:47:25 字數 795 閱讀 1951

平衡數

// 這道題比較難吧 和以往的數字記憶化搜尋設計的狀態不太一樣

// 也是用的記憶化dfs 熟練之後應該就沒太大問題了

#include#include__int64 dp[20][20][2010];// pos 數字位置 v支點的位置 s 力矩的數值

int digit[20];

__int64 dfs(int pos,int v,int s,int doing )// 因為當前位置前一位是多少對這乙個狀態沒有影響 只有力矩會影響到當前狀態 所以去掉pre 加上了s

if(!doing && dp[pos][v][s]!=-1)return dp[pos][v][s];

if(s<0)return dp[pos][v][s]=0;// 當前力矩小於0的話以後力矩都會小於0

int i,end;

__int64 ans=0;

end=doing?digit[pos]:9;

for(i=0;i<=end;i++)

if(!doing )

dp[pos][v][s]=ans;

return ans;

}__int64 solve(__int64 x)

int i;

__int64 ans=0;

for(i=l-1;i>=0;i--)

return ans-(l-1);//長度為l的數000…00會被重複計算l次(每個支點一次) 需減去(l-1)次

}int main()

return 0;

}

hdu3555(數字dp記憶化搜尋)

記憶化搜尋解法 include include int64 dp 25 3 dp pos pre pos記錄位數 pre記錄字首狀態0表示字首不包含49且pos 1不是4 1表示字首不包含49且pos 1位是4 2表示字首包含49 int digit 25 存數的各位上的數字 int l 存數的位數...

hdu 5179 數字dp 記憶化搜尋

dp i j 記錄第i位為j時在非限制條件下的符合條件數的個數 那麼在記憶化搜尋中標記當前狀態是否有限制,當前狀態下是否為 因為最終如果非 要返回1,是0返回0 因為最終要求的數 的取值範圍不包括0 那麼求取時直接算取get m 和get n 1 即可求解 include include inclu...

hdu 5898 數字dp,記憶化搜尋

include using namespace std define mod 1000000007 define pi acos 1.0 define inf 0x3f3f3f3f typedef long long ll typedef unsigned long long ull ll dp 2...