[cpp]
/********************
language:c++
author:pirates
problem:hdu2089
style:數字dp
*********************/
#include
#include
#include
using namespace std;
#define maxx 1000010
int dp[10][10];
//dp[i][0] 代表不是不吉利的個數
//dp[i][1] 代表最高位為2的個數且是非不吉利數
//dp[i][2] 代表不吉利個數的總數,62或4都不能存在
void init() }
int solve(int n)
bit[len+1]=0;
int ans=0;
for(int i=len;i>=0;i--)
} return tem-ans;
} int main()
return 0;
} /********************
language:c++
author:pirates
problem:hdu2089
style:數字dp
*********************/
#include
#include
#include
using namespace std;
#define maxx 1000010
int dp[10][10];
//dp[i][0] 代表不是不吉利的個數
//dp[i][1] 代表最高位為2的個數且是非不吉利數
//dp[i][2] 代表不吉利個數的總數,62或4都不能存在
void init()
}int solve(int n)
bit[len+1]=0;
int ans=0;
for(int i=len;i>=0;i--)
}return tem-ans;
}int main()
return 0;
}[cpp]
/********************
language:c++
author:pirates
problem:hdu3555
style:數字dp
*********************/
#include
#include
#include
#include
using namespace std;
//dp[i][0] 代表不出現49的個數
//dp[i][1] 最高位為9的個數
//dp[i][2] 出現49的 個數
typedef __int64 ll;
ll dp[30][3];
void init()
} ll solve(ll n)
bit[len+1]=0;
ll ans=0;
ll flag=0;
for(i=len;i>0;i--)
} return ans; }
int main()
return 0;
} /********************
language:c++
author:pirates
problem:hdu3555
style:數字dp
*********************/
#include
#include
#include
#include
using namespace std;
//dp[i][0] 代表不出現49的個數
//dp[i][1] 最高位為9的個數
//dp[i][2] 出現49的 個數
typedef __int64 ll;
ll dp[30][3];
void init()
}ll solve(ll n)
bit[len+1]=0;
ll ans=0;
ll flag=0;
for(i=len;i>0;i--)
}return ans;
}int main()
return 0;
}[cpp
/***************
language:c++
author:pirates
problem:相鄰兩數差2
style:數字dp
****************/
#include
#include
#include
#include
using namespace std;
int dp[15][10];
void init()
int solve(int n)
bit[len+1]=0;
int ans=0;
for(i=1;i
for(j=1;j
ans+=dp[i][j];
for(i=1;i
ans+=dp[len][i];
for(i=len-1;i;i--) //
for(j=0;j
if(abs(j-bit[i+1])>=2)
ans+=dp[i][j];
if(abs(bit[i+1]-bit[i])<2) break;
} return ans;
} int main()
數字DP入門詳解 題目推薦
update 2019 9 6 部落格裡某些東西沒有解釋清楚,完善了對應的解釋 在開始之前,我們先來看一道題 題目鏈結 題目要求,相鄰兩位的差大於等於2,那麼我們先來構造乙個試一試。比如說 15246 這個數,我們先取第一位為 1 然後第二位是 5 5 1 4 2 所以符合條件,第三位是 2 5 2...
簡單基礎數字 dp 題
終於比較理解了數字 dp qwq 處理大數區間的計數,分成每一位考慮,f 考慮從高到低位在第 pos 位並且滿足某些條件的答案,這個東西我們可以記憶化搜尋,但是注意要設計好狀態,不然會漏或者重複計算某些情況 qwq 需要觀察題目有沒有前導 0 限制,不過這個也不是重點了。關鍵在於對狀態的設計。zjo...
DP題目講解
1,題目詳見 解析 要是個等差數列,所以要排序,讓後以i為第一項,j為第二項的最長等差數列 那麼第三項則為f i j f j k 1 可是這樣是三重迴圈,但是這滿足這樣乙個等式 a k a j a j i 所以我麼只要列舉j,讓後i,k分別向左右列舉時間複雜度就為o n n 了 但是這樣還會卡時間,...