BZOJ4403 序列統計

2021-07-11 03:54:48 字數 1330 閱讀 5291

推導式子(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 … =

cmn+

m -1(n

+m)!

/(n!

∗m!)

modq =

(q−1

)![(

n+m)

/q]

∗ ((

n+m)

mod

q)! *(n

+m /

q)! ∗ (

q−1)

!−[n

/q]∗

(nmod q

)! −

1 *(n

/ q

)! ∗ (

q−1)

!−[m

/q]∗

(mmod q

)! −

1 *(m

/ q

)! mod

q又因為

所以1->mod-2的逆元一一匹配 所以(

q−1)

!−[n

/q]就是乙個關於[n/q]奇偶性有關的分段函式

同理 (q−

1)![

n/q]

也是今天手殘推了一下

發現就是lucas定理

調了乙個下午我整個人都lucas了

#include

#include

#include

using namespace std;

#define ll long long

const

ll mod=1000003;

int ll ff(ll x,ll y)

return res;

}ll fact_[mod],fact[mod];

char c;

inline void read(ll &a)

ll calc(ll a,ll r)

ll te(ll a,ll b)

int main()

return

0;}

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 序列統計

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

bzoj4403 序列統計

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