數字DP C K的幸運數字

2021-08-08 13:24:43 字數 1823 閱讀 3669

think:

1知識點:數字dp+記憶化搜尋

2思考:

(1):dp陣列記錄狀態應記錄[數字][是否已經含有47][前一位數值]

(2):dp陣列初始化位置應在總的查詢前(所有的dfs搜尋之前),進而通過記憶化搜尋記錄狀態,優化時間複雜度

(3):記憶化搜尋記錄之前已經搜尋得到的狀態

(4):dfs初始傳入的狀態

c~k的幸運數字——sdut題目鏈結

time limit: 1000ms memory limit: 65536kb

problem description

據說,qaq 的幸運數字是含有 「47」 (4 和 7 相鄰)的數,例如 47, 147, 247, 470, 471, 2047 是他的幸運數字,而 74, 1234, 407 就不是他的幸運數字。

而對 c~k 來說,只要不是 qaq 的幸運數字的數都是他的幸運數字。那麼他想問你,在閉區間 [l, r] 中,有多少個自己的幸運數字?

input

輸入資料有多組。第 1 行輸入 1 個整數 t (1 <= t <= 10000) 表示資料組數。

對於每組資料,輸入 1 行,包含 2 個整數 l, r (1 <= l <= r < 10^9),表示 c~k 要詢問的區間。

output

對於每組資料,在 1 行中輸出 1 個整數,表示區間內 c~k 的幸運數字的個數。

example input

3 1 1

10 50

1 500

example output

1 40

485hint

author

「山東理工大學第一屆acm知識挑戰賽(機試)」blue

以下為accepted**

#include 

#include

#include

using namespace std;

int dp[24][2][14], tp, link[24];

int dfs(int

pos, bool had_47, int pre, bool is_max);

int solve(int

x);int main()

return0;}

int solve(int

x) return dfs(tp-1, false, -1, true);

}int dfs(int

pos, bool had_47, int pre, bool is_max)

if(!is_max)

dp[pos][had_47][pre] = cnt;

return cnt;

}/**

****

****

****

****

****

****

****

****

****

****

****

*****

user name:

result: accepted

take time: 20ms

take memory: 152kb

submit time: 2017-09-20

21:37:34

****

****

****

****

****

****

****

****

****

****

****

****

****/

python幸運數字判斷 幸運數字 小程式

問題描述 1 n個數字,每個數字的範圍 9999到9999,把這n個數字排序後,刪除奇數字的數,然後把剩餘的數按原位置排序後繼續刪除奇數字,直到剩餘乙個數為止,剩餘的數就是幸運數,輸出幸運數和它最初的位置。程式的輸入為兩個引數 數字的數量 n 具體的資料 以空格隔開 比如 6 66 666 6666...

幸運數字2

題目 定義乙個數字為幸運數字當且僅當它的所有數字都是4或者7。比如說,47 744 4都是幸運數字而5 17 467都不是。定義next x 為大於等於x的第乙個幸運數字。給定l,r,請求出next l next l 1 next r 1 next r include include include...

幸運數字(luckly)

題目描述 a國共有 nn 座城市,這些城市由 tex parse error misplaced 條道路相連,使得任意兩座城市可以互達,且路徑唯一。每座城市都有乙個幸運數字,以紀念碑的形式矗立在這座城市的正中心,作為城市的象徵。一些旅行者希望遊覽a國。旅行者計畫乘飛機降落在 xx 號城市,沿著 xx...