洛谷
這題一看就是卡塔蘭數。
因為\(cnt[1] \leq cnt[0]\),很顯然的卡塔蘭嘛!
平時我們推導卡塔蘭是用乙個邊長為n的正方形推的,
相當於從(0,0)點走到(n,n)點,向上走的步數不能超過向右走,求出的方案數就是卡塔蘭數。
即總方案\(-\)不合法方案 -> \(\frac^}\)。
這題只是改成了從(0,0)走到(n,m)點,那麼就是:\(c^_-c^_\)。
因為涉及到除法取模,所以要求逆元。
剛剛好20100403是乙個質數,不信可以線性篩一下,所以直接費馬小定理求逆元。
code(注意要開long long):
#include using namespace std;
typedef int _int;
#define int long long
const int mo=20100403;
int n,m,ni[2000001]=,ans;
int qpow(int x,int p)
return d;
}_int main()
洛谷 P1641 SCOI2010 生成字串
洛谷 p1641 scoi2010 生成字串 題目描述 lxhgww最近接到了乙個生成字串的任務,任務需要他把n個1和m個0組成字串,但是任務還要求在組成的字串中,在任意的前k個字元中,1的個數不能少於0的個數。現在lxhgww想要知道滿足要求的字串共有多少個,聰明的程式設計師們,你們能幫助他嗎?輸...
洛谷 P1641 SCOI2010 生成字串
題目描述 lxhgww最近接到了乙個生成字串的任務,任務需要他把n個1和m個0組成字串,但是任務還要求在組成的字串中,在任意的前k個字元中,1的個數不能少於0的個數。現在lxhgww想要知道滿足要求的字串共有多少個,聰明的程式設計師們,你們能幫助他嗎?輸入格式 輸入資料是一行,包括2個數字n和m 輸...
P1641 SCOI2010 生成字串
lxhgww最近接到了乙個生成字串的任務,任務需要他把n個1和m個0組成字串,但是任務還要求在組成的字串中,在任意的前k個字元中,1的個數不能少於0的個數。現在lxhgww想要知道滿足要求的字串共有多少個,聰明的程式設計師們,你們能幫助他嗎?輸入資料是一行,包括2個數字n和m 輸出資料是一行,包括1...