組合數學 序列統計

2021-10-23 03:47:32 字數 706 閱讀 3051

題解:

生成乙個長度為1-n的序列,在l,r區間中選擇數字。那麼有m=r-l+1個數字可以選擇,每個數字選擇的次數加起來為n,所以這是明顯的插空法。為了讓每個數字都一定會被選一次,所以左右全部+1,接下裡就是利用公式合併再盧卡斯一下了。

#pragma gcc optimize(2)

#include

#define int long long

using

namespace std;

typedef

long

long ll;

const

int mod=

1e6+3;

const

int n=

1e6+7;

int fac[n]

,inv[n]

;ll q_pow

(int a,

int b)

return res;

}void

init()

return;}

ll c

(ll a,ll b)

ll lucas

(ll n,ll m)

void

solve

(int n,

int l,

int r)

signed

main()

}

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

排列組合數學 子串行

題目描述 給定乙個小寫字母字串t 求有多少長度為m的小寫字母字串s滿足,t是s的乙個子串行 不需要連續 輸入描述 第一行乙個字串t 第二行乙個正整數m 輸出描述 輸出答案對109 7取模的值 示例1輸入a2 輸出51 說明長度為2的裡面有a的串有51種 備註 1 t m 105 列舉終點,前面的除了...

合法括號序列(dp 組合數學)

鍵盤上有左括號 右括號 和退格鍵 共三個鍵。牛牛希望按鍵n次,使得輸入的字串恰好乙個合法的括號序列。每按一次左括號 字串末尾追加乙個左括號 每按一次右括號 字串末尾追加乙個右括號 每按一次退格鍵 會刪掉字串的最後乙個字元,特別的,如果字串為空,牛牛也可以按退格,但是什麼都不會發生。輸出方案數對p取模...