數字DP HDU2089 不要62

2021-07-22 03:57:17 字數 1064 閱讀 7165

problem description

杭州人稱那些傻乎乎粘嗒嗒的人為62(音:laoer)。

杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。

不吉利的數字為所有含有4或62的號碼。例如:

62315 73418 88914

都屬於不吉利號碼。但是,61152雖然含有6和2,但不是62連號,所以不屬於不吉利數字之列。

你的任務是,對於每次給出的乙個牌照區間號,推斷出交管局今次又要實際上給多少輛新的士車上牌照了。

input

輸入的都是整數對n、m(0

output

對於每個整數對,輸出乙個不含有不吉利數字的統計個數,該數值佔一行位置。

sample input

1 100

0 0

sample output

80

**:

#include#include#includeusing namespace std;

const int maxn=10;

int a,b; // 區間[a,b]

int bit[maxn]; // 儲存n的每一位數字;

int dp[maxn][2]; // 記錄前i位符合要求的個數;[0/1]記錄前一位是否為6;

// is6記錄的是上一位是不是6;

// ismax記錄的改位是不是最高位;

// 如果是下一位izhineng取0~bit[len],否則取0~9;

int dfs(int len,bool is6,bool ismax)

if(!ismax) dp[len][is6]=cnt;

return cnt;

}int solve(int n)

return dfs(pos,false,true);

}int main()

return 0;

}

數字DP HDU 2089 不要62

簡單的數字dp 數字dp的簡單思想 從低位到高位開始列舉 每次狀態有兩種 即 到當前位與上限n一模一樣 和 到當前位已經小於n 那麼就可以列舉當前位進行轉移 因為 到當前位與上限n一模一樣 只有一種狀況 所以不特意儲存 中dp陣列都表示 到當前位已經小於n dp 2 表示 已經出現62 dp 1 表...

數字DP Hdu 2089 不要62

ps 博主又水blog,是佳龍大神叫我幹的。乙個數被稱為吉利 手動滑稽 當且僅當其不含4和62。多次詢問乙個區間的吉利的個數。這題應該算是數字dp的裸題吧。考慮求出乙個固定長度出現的吉利數,然後分別考慮每一位就可以了。設f i 0 1 2 表示長度為 i 的吉利個數,首位為2的吉利個數,不吉利的個數...

數字DP HDU 2089 不要62

include include include include include include include include include include include include define inf 0x3f3f3f3f using namespace std typedef long...