description
快要到七夕了,又到了交(nue)往(gou)的季節。
惡夢坐在教室裡,作為乙個純屌絲的他當然不會關心要送什麼禮物給女生,然而他的前桌yves卻在忙碌著各種各樣的的簡訊。
惡夢注意到yves發簡訊給的**號碼似乎都滿足著特別的性質,難道yves的"好朋友"是滿足正態分佈的?
由於yves有著自己最喜歡的數字a,2 <= a <= 9
惡夢從這裡入手,發現了一些端倪。
假設yves發的**號碼是乙個十進位制數字s
惡夢發現s會滿足以下三個性質中的乙個
1. s是a的倍數。
2. s在十進位制表示下的各項數字加起來是a的倍數。
3. s的某一位是a
比如說當a = 7時,21,16,17這三個數字都是會被yves發簡訊的,他們分別滿足1,2,3性質。
惡夢很擔心所有的女同學都被yves搶走了,但他一下子又數不過來那些同學沒有被yves搶走,所以他把這個問題交給了你。
他會給你兩個自然數l,r,以及yves最喜歡的數字a,
他並不希望你告訴他在[l,r]中有多少個同學沒有被搶走,而希望你告訴他這些數字的平方和。
比如說3,7是合法的,那麼你應該輸出3^2 + 7^2 = 58這個數。
當然,由於答案可能很大,你只需要將答案對10^9 + 7取模即可。
input
輸入的第一行包括乙個正整數t,表示總共有t組詢問。
接下來有t行,每行三個整數l,r,a。
output
輸出包括t行,每行乙個整數,表示對10^9 + 7取模的答案。
sample input
3sample output2 20 6
3 203 7
11 771 2
1884data constraint1593269
32817226
對於15%的資料,0 <= l <= r <= 10^6,t = 1
對於35%的資料,0 <= l <= r <= 10^7,t = 1
另外有25%的資料,a = 2,l = 10^k,r = 10^v,k和v都是自然數。
對於100%的資料,0 <= l <= r <= 10^18,2 <= a <= 9, t <= 100
因為答案顯然可以ans[r]-ans[l-1],所以我們只考慮r
設f[i][same][mod][sum]為當前數的前i位與r的前i位相同,當前處理位與r的當前位是否相同(same),當前數對a的模為mod,當前數字的和對a的模為sum時的數字個數
然後轉移邊界就是當前位數字不能為a,當前位數字不能大於r的當前位
s,g分別為總和和平方和,平方和可以簡單地用(x1+1)^2+(x2+1)^2+(x3+1)^2=x1^2+x2^2+x3^2+2*1*(x1+x2+x3)+3*1*1計算
最後答案為f[1][same][mod][sum]的總和,其中mod,sum!=0
#include #includeview code#include
using
namespace
std;
typedef
long
long
ll;const ll p=1e9+7
;int
t,a;
ll l,r;
int c[20
],cnt;
ll f[
3][20][2][10][10
];ll calc(ll x)
ll ans=0
;
for (int same=0;same<2;same++)
for (int mo=1;mo)
for (int sum=1;sum)
(ans+=f[2][1][same][mo][sum])%=p;
return
ans;
}int
main()
}
數字dp 不要62與4
problem description 杭州人稱那些傻乎乎粘嗒嗒的人為62 音 laoer 杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。不吉利的數字為所有含有4或62的號碼。例如 ...
Python語言程式設計(4) 數字型別
表示數字或數值的資料型別稱為數字型別。python 內建的數字型別有整型 int 浮點型 float 複數型別 complex 它們分別對應數學中的整數 小數和複數,此外,還有一種比較特殊的整型 布林型別 bool 下面針對python中的這4種數字型別分別進行講解。1 整型 類似 2 1.0 1....
讀世界是數字的(4)
能讓計算機完成各種任務的指令序列通稱軟體 關於演算法 演算法的關鍵屬性是效率,即對於給定的資料量,它的處理速度怎麼樣?花費的時間大概是多少?書上介紹了以下3種演算法 即計算時間與資料量成正比,當對某些資料的基本操作是相同的,那麼工作量 計算時間 會與資料量同比例增加 對於線性演算法的改進,如果在最開...