AcWing 338 計數問題

2021-10-19 18:56:39 字數 2327 閱讀 6828

acwing 338. 計數問題

給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0~9的出現次數。

例如,a=1024,b=1032,則 a 和 b 之間共有9個數如下:

1024 1025 1026 1027 1028 1029 1030 1031 1032

其中『0』出現10次,『1』出現10次,『2』出現7次,『3』出現3次等等…

輸入格式

輸入包含多組測試資料。

每組測試資料佔一行,包含兩個整數 a 和 b。

當讀入一行為0 0時,表示輸入終止,且該行不作處理。

輸出格式

每組資料輸出乙個結果,每個結果佔一行。

每個結果包含十個用空格隔開的數字,第乙個數字表示『0』出現的次數,第二個數字表示『1』出現的次數,以此類推。

資料範圍

0輸出樣例:

1 2 1 1 1 1 1 1 1 1

85 185 185 185 190 96 96 96 95 93

40 40 40 93 136 82 40 40 40 40

115 666 215 215 214 205 205 154 105 106

16 113 19 20 114 20 20 19 19 16

107 105 100 101 101 197 200 200 200 200

413 1133 503 503 503 502 502 417 402 412

196 512 186 104 87 93 97 97 142 196

398 1375 398 398 405 499 499 495 488 471

294 1256 296 296 296 296 287 286 286 247

這道題是數字dp題,其實說來還是很有難度的,y總的思路我也是看明白了

先求1-n**現 x的次數,再用1-b減去1-a-1的值

1-n**現x的次數怎麼求

a bc

defg

a bc d efg

abcdef

g這六位數中,我們假設d為x,那麼前面的數為0.....ab

c−

10.....abc-1

0.....

abc−

1,總共abc次因為我們都知道啊,高位小的時候,後面的數是可以取1−p

ow(10

,i

)1-pow(10,i)

1−pow(

10,i

),ii

i為位數,然後我們出現的次數為(ab

c−1)

∗(1−

pow(

10,i−

1)

(abc-1)*(1-pow(10,i-1)

(abc−1

)∗(1

−pow

(10,

i−1)

,然後我們假設當高位剛好等於abc的時候,我們就要開始分析d上面的數字了,如果d上面的數字大於x說明當d==x的時候,後面的地位是可以取到0-pow(10,i-1)-1的然後要是等於的話,只能取def+1。要是小於就不考慮了。

不過這一次y總有小小的翻車,我建議從30分鐘看。

**如下

#include

#include

#include

using

namespace std;

intget_num

(vector<

int> o,

int l,

int r)

return res;

}int

pow10

(int i)

intcount

(int k,

int x)

int n=num.

size()

;int res=0;

for(

int i=n-1-

!x;i>=

0;i--)if

(num[i]

==x) res+

=get_num

(num,

0,i-1)

+1;else

if(num[i]

>x) res+

=pow10

(i);

}return res;

}int

main

(void

)puts(""

);}}

ACWing 338 計數問題

給定兩個正整數a aa和b bb,求 a,b a,b a,b 之間所有數字中0 9 0 sim 9 0 9出現的次數。前導0 00不許出現。輸入格式 輸入包含多組測試資料。每組測試資料佔一行,包含兩個整數a aa和b bb。當讀入一行為0 0時,表示輸入終止,且該行不作處理。輸出格式 每組資料輸出乙...

AcWing 338 計數問題(數字統計dp)

acwing 338.計數問題 給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0 9的出現次數。例如,a 1024,b 1032,則 a 和 b 之間共有9個數如下 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出現10次,1 出現1...

計數問題(二)

計數問題 二 在上一講中,我們一起研究 列舉法 乘法原理 加法原理 在計數問題中的應用。但是,在實際的問題中,這些方法並不是單獨使用的。往往需要同時應用這幾種方法,這就需要我們搞清題意,根據已知條件,分別使用正確的方法,得到準確的結果。一 閱讀思考 例1.求720這個數約數的個數。分析與解 從1開始...