BZOJ 4403 序列統計

2022-08-20 06:15:14 字數 2007 閱讀 2463

time limit: 3 sec  memory limit: 128 mb

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

輸入第一行包含乙個整數t,表示資料組數。

第2到第t+1行每行包含三個整數n、l和r,n、l和r的意義如題所述。

1≤n,l,r≤10^9,1≤t≤100,輸入資料保證l≤r。

輸出包含t行,每行有乙個數字,表示你所求出的答案對10^6+3取模的結果。

21 4 5

2 4 525

//【樣例說明】滿足條件的2個序列為[4]和[5]。

by yts1999

雖然我不會推,但是一道好的模板題。

這裡有乙個很好的想法對於這種單調不下降序列,就是加上它在第幾位。

假設序列長度為n,區間為[l,r],首先求出這一段的答案。

對於任意乙個序列,將第i個數+i,那麼原來的問題就轉化為了n個在[l+1,r+n]區間以內的單調遞增的序列的個數。後者又相當於在[l+1...r+n]這r-l+n個數中取n個的方案數,即為c(r-l+n,n)=c(r-l+n,r-l)

公式: c(n,m)+c(n+1,m)+c(n+2,m)+...+c(n+p,m)=c(n+p+1,m+1)-c(n,m+1);

不懂點這。

所以,答案就相當於c(r-l+1,r-l)+c(r-l+2,r-l)+...+c(r-l+n,r-l)=c(r-l+n+1,r-l+1)-c(r-l+1,r-l+1)=c(r-l+n+1,n)-1。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9 typedef long

long

ll;10 typedef long

double

ld;11 typedef pairpr;

12const

double pi=acos(-1

);13

#define rep(i,a,n) for(int i=a;i<=n;i++)

14#define per(i,n,a) for(int i=n;i>=a;i--)

15#define rep(i,u) for(int i=head[u];i;i=next[i])

16#define clr(a) memset(a,0,sizeof(a))

17#define pb push_back

18#define mp make_pair

19#define fi first

20#define sc second

21#define pq priority_queue

22#define pqb priority_queue , less>

23#define pqs priority_queue , greater>

24#define vec vector

25 ld eps=1e-9

;26 ll pp=1000000007

;27 ll mo(ll a,ll pp)

28 ll powmod(ll a,ll b,ll pp)

29void fre()

30//

void add(int x,int y,int z)

31int dx[5]=,dy[5]=;

32 ll read()

37const

int n=1000010,p=1000003;38

ll fac[n],inv[n];

39ll c(ll n,ll m)

44return (c(n/p,m/p)*c(n%p,m%p))%p;45}

46void

init()

54int

main()

61return0;

62 }

view code

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