數字DP JZOJ 4239 光棍

2022-04-30 19:54:11 字數 2009 閱讀 6601

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

3

2 20 6

3 203 7

11 771 2

sample output

1884

1593269

32817226

data constraint

對於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 #include 

#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()

}

view code

數字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種演算法 即計算時間與資料量成正比,當對某些資料的基本操作是相同的,那麼工作量 計算時間 會與資料量同比例增加 對於線性演算法的改進,如果在最開...