51nod 1042 數字0 9的數量

2021-07-24 03:53:19 字數 1489 閱讀 7386

提問8

1

t擇責x

插入

本地

引用

(支援 jpg、gif、png 格式,不要超過 2mb)

確定id="mentioneditoruploadiframe" name="mentioneditoruploadiframe" src="about:blank" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" width="0" height="0" allowtransparency="true" scrolling="no">

關閉插入

公式預覽:

關閉確定

顯示話題

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次。

input

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

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

10 19
output示例

1111

1111111

思路:和1009型別相同,但是這個題的變化在於數字0的數量,因為數字0不可以出現在首位,所以在0的時候必須重新去重首位為0的情況

#include #include using namespace std;

typedef long long ll;

long long dp[20];

void solve(long long n,int x,int as)

{ long long count = 0;

long long i = 1;

long long current = 0,after = 0,before = 0;

while((n / i) != 0)

{current = (n / i) % 10;

before = n / (i * 10);

after = n - (n / i) * i;

if (current > x)

count = count + (before + 1) * i;

else if (current >a>>b;

for(int i=0; i<=9; i++)

solve(b,i,1);

for(int i=0; i<=9; i++)

solve(a-1,i,0);

for(int i=0; i<=9; i++)

cout<

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

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

題目 給出一段區間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出現的次數 這題感覺...