提問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 19output示例
1111思路:和1009型別相同,但是這個題的變化在於數字0的數量,因為數字0不可以出現在首位,所以在0的時候必須重新去重首位為0的情況1111111
#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出現的次數 這題感覺...