題意:
杭州人稱那些傻乎乎粘嗒嗒的人為62(音:laoer)。
杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。
不吉利的數字為所有含有4或62的號碼。例如:
62315 73418 88914
都屬於不吉利號碼。但是,61152雖然含有6和2,但不是62連號,所以不屬於不吉利數字之列。
你的任務是,對於每次給出的乙個牌照區間號,推斷出交管局今次又要實際上給多少輛新的士車上牌照了。
思路:
最開始可以想到直接乙個乙個數字去試試,找一找是否滿足情況,這是笨辦法,也會超時。
而數字dp可以用數字的特性去解決:
利用上邊的特性定義:dp
[i][
j]為數字的第i位以j數字開頭的滿足題意的個數
那麼便有:dp
[i][
j]=∑
9j=0
dp[i
−1][
j],而62 和 4 只需直接加上限制條件就行。
#include
#include
#include
using namespace std;
int n,m;
int dp[10][10];
void dp()}}
}int solve(int a)
temp[pos+1] = 0;
int ans = 0;
for(int i = pos;i >= 1; i--)
if(temp[i] == 4 || (temp[i+1] == 6 && temp[i] == 2)) break;
}return ans;
}int main(int argc, char const *argv)
return
0;}
HDU 2089 數字dp (簡單)
數字dp 和hdu 3555類似,稍微複雜了點點,不同在於,一 多考慮4的情況 二 因為子串是 62 而3555的子串 49 末尾數字不同 所以這題要多加一種情況if num i 2 last 6 last 表示前一位數num i 1 狀態還是一樣 dp i 0 表示所有不含不吉利的數開頭任意 dp...
HDU 2089 數字 dp 入門
可暴力,可dp。參考資料 click me 第二個版本的 參考資料 7k 的板子 第二個版本 在下面 做這道題的時候有兩個疑問 第一 既然在dp中 51 既可以看做 51 也可以看做 0051 或者 000051 那麼51這個數字會不會計算多次。第二 既然狀態轉移保證了數字的合法,在統計的時候是否還...
HDU 2089 數字dp入門
開始學習數字dp.一道昨天看過 思想的題今天打了近兩個小時.最後還是看了別人的 找bug.丟丟 傳說院賽要取消 這麼菜不出去丟人也好吧 include include include include include includeusing namespace std int n,m 數字dp 含6...