Bzoj P4403 序列統計

2021-09-26 05:20:39 字數 1404 閱讀 3820

給定三個正整數n、l和r,統計長度在1到n之間,元素大小都在l到r之間的單調不降序列的數量。輸出答案對10^6+3取模的結果。

1 ≤n

,l,r

≤109

,1≤t

≤100,l

≤r

1≤n,l,r≤10^9,1≤t≤100,l≤r

1≤n,l,

r≤10

9,1≤

t≤10

0,l≤

r元素在[l,

r]

[l,r]

[l,r

]選其實相當於在[1,

r−l+

1]

[1,r-l+1]

[1,r−l

+1]選

問題轉換成,

將i

ii個(i∈[

1,n]

i∈[1,n]

i∈[1,n

])球放到r−l

+1

r-l+1

r−l+

1個盒子內,盒子可以為空的方案數

a ns

=∑i=

1nci

+(r−

l)r−

lans=\sum_^c_^

ans=∑i

=1n​

ci+(

r−l)

r−l​

也就是ans

=cn+

(r−l

)+1r

−l+1

−1

ans=c_^-1

ans=cn

+(r−

l)+1

r−l+

1​−1

求c(n,m).但n,m過大時,可用lucas定理

#include #include #include #include #include #include #include #define rep(i, st, ed) for (int i = st; i <= ed; i++)

#define rwp(i, ed, st) for (int i = ed; i >= st; i--)

#define lson(x) x * 2

#define rson(x) x * 2 + 1

#define n 1000005

using namespace std;

typedef long long ll;

const int mo = 1000003;

int fac[mo+5], inv[mo+5], ans, t;

void pre_work()

int c(int n, int m)

int main()

return 0;}

home back

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的意義如題所述。...