51nod 1042 數字0 9的數量 數字DP

2021-07-14 01:43:11 字數 716 閱讀 3657

題目:給出一段區間a-b,統計這個區間內0-9出現的次數。

比如 10-19,1出現11次(10,11,12,13,14,15,16,17,18,19,其中11包括2個1),其餘數字各出現1次。

input

兩個數a,b(1 <= a <= b <= 10^18)
output

輸出共10行,分別是0-9出現的次數

這題感覺挺麻煩的,糾結了好久。

我們用遞迴來考慮每一位。分成已經計算過的低位,當前位,還沒計算的高位。

處理當前位時無非這幾種情況:

1、當前位與低位的關係

2、高位與低位的關係

3、當前為與高位的關係

對三種情況進行處理即可。要注意0的特殊情況,例如 01 其實沒有0。

#include #include#define ll long long

using namespace std;

void dfs(ll a,ll b,ll c)

if(n) dfs(n-1,b*10,c);//n已經處理過,所以要處理n-1

}ll x[20],y[20];

int main()

{ ll a,b;

cin>>a>>b;

dfs(a-1,1,x);

dfs(b,1,y);

for(int i=0;i<10;i++) cout<

51nod 1042 數字0 9的數量

提問8 1 t擇責x 插入 本地 引用 支援 jpg gif png 格式,不要超過 2mb 確定id mentioneditoruploadiframe name mentioneditoruploadiframe src about blank frameborder 0 marginwidth...

51nod 1042 數字0 9的數量

1042 數字0 9的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 給出一段區間a b,統計這個區間內0 9出現的次數。比如 10 19,1出現11次 10,11,12,13,14,15,16,17,18,19,其中11包括2個1 其餘數字各出現1次。in...

51nod 1042 數字0 9的數量

給出一段區間a b,統計這個區間內0 9出現的次數。比如 10 19,1出現11次 10,11,12,13,14,15,16,17,18,19,其中11包括2個1 其餘數字各出現1次。input 兩個數a,b 1 a b 10 18 output 輸出共10行,分別是0 9出現的次數input示例 ...