推導式子(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取模...