數字遊戲1 區間內的不降數,數字DP 寒假集訓

2021-10-16 22:15:00 字數 1206 閱讀 7131

科協裡最近很流行數字遊戲。某人命名了一種不降數,這種數字必須滿足從左到右各位數字成小於等於的關係,如 123,446。現在大家決定玩乙個遊戲,指定乙個整數閉區間 [a,b],問這個區間內有多少個不降數。

輸入格式

有多組測試資料。每組只含兩個數字 a,b,意義如題目描述。

輸出格式

每行給出乙個測試資料的答案,即 [a,b] 之間有多少不降數。

樣例input output

1 91 19918

資料範圍與提示

對於全部資料,1≤a≤b≤231−1。

簡單題,只要記得使位數上的數字進行排序

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ls (p<<1)

#define rs (p<<1|1)

#define ll long long

using

namespace std;

const

int maxn =

2e6+5;

const

int inf =

0x3f3f3f3f

;ll dp[50]

[15];

//dp[pos][pre]記錄了遍歷第pos為位時,前一位為pre時的狀態數

ll a[30]

,b[30];

// void init()

// }

ll dfs

(ll pos,ll pre,

bool limit)if(

!limit)

dp[pos]

[pre]

=ans;

//無限制更新

return ans;

}ll init

(ll n)

return

dfs(len -1,

0,1)

;}void

solve()

}int

main()

非負整數區間內含某數字的數的個數

群裡有人問了這個問題 然後被attack秒了orz 考慮數字dp 預處理v 第幾位 該位是否是目標數字 是否有目標數字 顯然數字除了0之外的求解過程是完全一致的 那麼我們特判0就可以了 include cstdio include cstring include iostream include a...

產生隨機小數 如果取到小數區間內的任一數字?

一位粉絲的需求,如果根據左側的小數區間,返回區間內的隨機小數?excel中存在兩個隨機函式,一是randbetween,但其返回的是隨機整數,而不是小數 二是rand函式,返回0 1之間的隨機小數,兩者都無法直接產生需求的結果。既然是隨機,就必須得結合隨機函式。方法一,化小數為整數,再利用randb...

分塊 二分維護,求區間內數字出現的次數

如題,把區間分塊,對每個塊裡的數字排序,然後在塊裡二分查詢,複雜度理論是o n 1.5 logn csy菊苣說把塊的大小調整為n log2 n 複雜度可以降到o n sqrt n logn 然後我寫了組大隨機資料測試了一下,如果分塊大小是sqrt n 用了7.6s,分塊大小是n log2 n 時只用...