題目大意:
找出區間[n
,m] 內不含子串62以及4的數字個數
分析:
找不含4的數字直接在向下層dp時遇到i==
4 的情況跳過即可,對於不含62的情況,加乙個引數pr
e ,記錄之前乙個數字的情況,若之前為6,且當前要放2,則跳過,按模板dp即可
這題的資料量很小,所以直接暴力也可以,當然一般當做數字dp練手,上手可以先先試試不看模板,敲一發沒有額外限制條件的dp,也就是求0−
n 之間數字的個數,然後試著通過增加、修改條件,達成題目的要求
**:
#include
#include
typedef long long ll;
int dp[30][2];
int a[50],pos;
ll dfs(int
pos,int pre,bool sta,bool limit)
if (!limit) dp[pos][sta] = ans;
return ans;
}ll solve(ll n)
return dfs(pos-1,0,false,true);
}int main()
printf("%lld\n",solve(m)-solve(n-1));
}}
HDU2089 不要62 數字DP
problem description 杭州人稱那些傻乎乎粘嗒嗒的人為62 音 laoer 杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。不吉利的數字為所有含有4或62的號碼。例如 ...
Hdu2089 不要62 數字dp
include includeint dp 10 3 dp i 0 為位數小於等於i且不含62也不含4的數字的個數 dp i 1 為位數為i且首位為2且不含62也不含4的數字的個數 dp i 2 為位數小於等於i且含62或4的數字的個數 int digit 10 void er int wei in...
hdu 2089 不要62 (數字dp)
思路 用變數記錄吉利數,和最高位為2的吉利數還有不是吉利數的個數。code include include includeusing namespace std int dp 10 3 dp i j i表示位數,j表示狀態 dp i 0 表示不存在不吉利數字 dp i 1 表示不存在不吉利數字,且最...