給定兩個正整數a和b,求在[a,b]中的所有整數中,每個數碼(digit)各出現了多少次。
input
輸入檔案中僅包含一行兩個整數a、b,含義如上所述。
output
輸出檔案中包含一行10個整數,分別表示0-9在[a,b]中出現了多少次。
sample input
1 99
sample output
9 20 20 20 20 20 20 20 20 20
hint
30%的資料中,a<=b<=10^6;
100%的資料中,a<=b<=10^12。
題目大概:
題目很精簡。
思路:做乙個結構題儲存所有的0到9的數的個數,並儲存現在位的個數。
每次統計是把現在位的個數儲存,並把以前儲存的數字的數量一起進行賦值。
這個題主要是統計10位數,麻煩一點。
**:
#include#include#include#includeusing namespace std;
typedef long long ll;
int a[22];
struct dp
dp(ll su):sum(su)
}dp[20][2],ans[2];
dp sove(int pos,int lead,int limit)
now.sum+=t.sum;
if(!lead||lead&&i)now.wei[i]+=t.sum;
}if(!limit)dp[pos][lead]=now;
return now;
}void go(ll x,int k)
ans[k]=sove(pos-1,1,1);
}int main()
}while(cin>>m>>n)
}return 0;
}
BZOJ 1833 count 數字計數 數字DP
description 給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。input 輸入檔案中僅包含一行兩個整數a b,含義如上所述。output 輸出檔案中包含一行10個整數,分別表示0 9在 a,b 中出現了多少次。解題報告 這道題很容易看出是乙個數字d...
ZJOI2010 數字計數 數字DP
給定兩個正整數a和b,求在 a,b 中的所有整數中,每個數碼 digit 各出現了多少次。輸入格式 輸入檔案中僅包含一行兩個整數a b,含義如上所述。輸出格式 輸出檔案中包含一行10個整數,分別表示0 9在 a,b 中出現了多少次。最簡單的數字dp的題目,可以對每個數字單獨做,拿數字1舉例。考慮dp...
BZOJ 1833 數字計數 數字DP
題目鏈結 做的第一道數字dp題,聽說是最基礎的模板題,但還是花了好長時間才寫出來。想深入了解下數字dp的請點這裡 先設dp陣列dp i j k 表示數字是i,以j開頭的數k出現的次數 有數字dp的題一般都會用到字首陣列,題目要求我們求b a這個區間裡各個數碼出現的次數,我們可以分別求出 0,b 和 ...