bzoj4403 序列統計 Lucas,組合數學

2021-09-26 02:23:27 字數 1033 閱讀 9952

求有多少個長度為n

nn的單調不公升序列,且對於每個元素都∈[l

,r

]\in[l,r]

∈[l,r]

我們讓m=r

−l+1

m=r-l+1

m=r−l+

1,因為序列的要求起始起始不會影響結果

然後我們開始考慮,我們在長度為n

nn的序列全中1序列中我們可以每次選擇乙個位置讓後面的數都加1,然後選擇的個數不能超過m−1

m-1m−

1個。我們列舉進行了多少次操作,對於操作的先後順序不會影響該結果,然後這時我們可以將模型轉換為n

nn個格仔,i

ii個球,然後求方案數

∑ i=

1m−1

cn+i

−1i⇒

cn+m

m−

1\sum_^ c_^i\rightarrow c_^-1

i=1∑m−

1​cn

+i−1

i​⇒c

n+mm

​−1然後luc

as

lucas

luca

s定理搞搞就好了時間複雜度o(t

log⁡n+

p)

o(t\log n+p)

o(tlogn+

p)

#include

#include

#include

#define ll long long

using

namespace std;

const ll p=

1e6+3;

ll t,n,m,a[p+1]

;ll power

(ll x,ll b,ll p)

return ans;

}ll c

(ll n,ll m,ll p)

ll lucas

(ll n,ll m,ll p)

intmain()

return0;

}

BZOJ4403 序列統計

description 給定三個正整數n l和r,統計長度在1到n之間,元素大小都在l到r之間的單調不降序列的數量。輸出答案對10 6 3取模的結果。input 輸入第一行包含乙個整數t,表示資料組數。第2到第t 1行每行包含三個整數n l和r,n l和r的意義如題所述。output 輸出包含t行,...

BZOJ4403 序列統計

推導式子 baidu可得 設m r l 1 長度為i,元素大小在1 m之間的單調不降序列的數量有cm 1i m 1個 故答案為 n i 1 cm 1 i m 1 ni 1 cm 1i m 1 cm m 1 ni 2 cm 1i m 1 cm m 1 1 ni 3 cm 1i m 1 cm m 2 1...

BZOJ4403 序列統計

標籤 lucas定理,逆元 description 給定三個正整數n l和r,統計長度在1到n之間,元素大小都在l到r之間的單調不降序列的數量。輸出答案對10 6 3取模的結果。input 輸入第一行包含乙個整數t,表示資料組數。第2到第t 1行每行包含三個整數n l和r,n l和r的意義如題所述。...