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...