dp[i][j]記錄第i位為j時在非限制條件下的符合條件數的個數
那麼在記憶化搜尋中標記當前狀態是否有限制,當前狀態下是否為0,因為最終如果非0要返回1,是0返回0.因為最終要求的數a的取值範圍不包括0
那麼求取時直接算取get(m)和get(n-1)即可求解
#include #include #include #include #define max 15
using namespace std;
int t,n,m;
int dp[max][max];
int bit[max];
int cnt;
int dfs ( int len , int pos , int flag , int zero )
if ( !flag )
dp[len][pos] = ans;
return ans;
}int get ( int num )
return dfs ( cnt , 0 , 1 , 1 );
}int main ( )
}
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 3709(數字dp 記憶化搜尋)
平衡數 這道題比較難吧 和以往的數字記憶化搜尋設計的狀態不太一樣 也是用的記憶化dfs 熟練之後應該就沒太大問題了 include include int64 dp 20 20 2010 pos 數字位置 v支點的位置 s 力矩的數值 int digit 20 int64 dfs int pos,i...
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...