求有多少個長度為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−
1cn
+i−1
i⇒c
n+mm
−1然後luc
as
lucas
luca
s定理搞搞就好了時間複雜度o(t
logn+
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的意義如題所述。...