大中鋒的學院要組織學生參觀博物館,要求學生們在博物館中排成一隊進行參觀。他的同學可以分為四類:一部分最喜歡唱、一部分最喜歡跳、一部分最喜歡rap,還有一部分最喜歡籃球。如果佇列中\(k,k + 1,k+1,k + 2,k+2,k + 3,k+3\)位置上的同學依次,最喜歡唱、最喜歡跳、最喜歡rap、最喜歡籃球,那麼他們就會聚在一起討論蔡徐坤。大中鋒不希望這種事情發生,因為這會使得隊伍顯得很亂。大中鋒想知道有多少種排隊的方法,不會有學生聚在一起討論蔡徐坤。兩個學生隊伍被認為是不同的,當且僅當兩個隊伍中至少有乙個位置上的學生的喜好不同。由於合法的隊伍可能會有很多種,種類數對998244353取模。思路:輸入資料只有一行。每行55個整數,第乙個整數n,代表大中鋒的學院要組織多少人去參觀博物館。接下來四個整數a、b、c、d,分別代表學生中最喜歡唱的人數、最喜歡跳的人數、最喜歡rap的人數和最喜歡籃球的人數。保證\(a+b+c+d \ge n\)。
每組資料輸出乙個整數,代表你可以安排出多少種不同的學生隊伍,使得隊伍中沒有學生聚在一起討論蔡徐坤。結果對998244353取模。
4 4 3 2 1
996 208 221 132 442
\(令f_x=(n-4x)!\sum\limits_^a\sum\limits_^b\sum\limits_^c\sum\limits_^d[a+b+c+d=n-4x]\frac\)
\(ans=\sum\limits_^\rfloor\}}(-1)^i(^_)f_i\)
證明:後面把討論蔡徐坤的段叫\(jntm\)
\(考慮列舉jntm的數量,進行容斥\)
\(假設f_i為在去掉jntm後的方案數\)
\(\because 每個jntm長度4\)
\(\therefore 有c_^i的方案數\)
\(\therefore ans=\sum\limits_^\rfloor\}}(-1)^i(^_)f_i\)
\(考慮列舉剩下的位置中有多少個j,n,t,m\)
\(f_x=\sum\limits_^a\sum\limits_^b\sum\limits_^c\sum\limits_^d[a+b+c+d=n-4x]\frac=(n-4x)!\sum\limits_^a\sum\limits_^b\sum\limits_^c\sum\limits_^d[a+b+c+d=n-4x]\frac\)
\(發現可以ntt優化卷積,時間複雜度o(n^2log_2n)\)
\(\mathfrak\)
#include#include#include#include#includeusing namespace std;
# define read read1()
# define type templatetype inline t read1()
void push(int n)
array(int* l=null,int* r=null)
inline int size()
inline int& operator (const int x)
void resize(int n)
void clear()
void swap()
int& top()
void pop()
array& operator %= (const int k)
return t;
}array operator *(array a,int n)
int* ntt(const int len,array& a,const bool ty,int* r=null)}}
return r;
}array operator * (array x,array y)
array& operator *= (array& x,array y)
void rev(array &x,array y)
array inv(array a)
array operator / (array x,array y)
array diff(array x)
int fac[1001],n(read),a(read),b(read),c(read),d(read),inv[1001];
array x,y,z,w;
int c(int n,int m)
int sigma(int l)
int main()
TJOI2019 唱 跳 rap和籃球
tjoi2019 唱 跳 rap和籃球 律師函警告 考慮容斥,減去至少乙個cxk的 列舉有i個cxk,方案數 c n 3 i,i 因為不相交,所以直接扣掉剩下3個,選擇第乙個開始的位置,一一對應 剩下的?隨便,統計多了?二項式反演!需要計算 a i,b i,c i,d i,n 4 i 表示用a i,...
內部轉跳和外部轉跳的區別
內部轉跳和外部轉跳的區別 主要有三個不同點,主要是 內部跳轉實現的方法 request.getrequestdispatcher jsp或者servlet forward request,response 外部跳轉實現的方法 response.sendredirect jsp或者servlet 30...
最強的籃球隊和馬爾可夫模型
打籃球經常遇到這種情況,11個人,分4 4 3共三套,一群人少時間玩,在乙個失敗的團隊的人下陣來填補空缺。因此,我認為,會不會出現乙個最強組合,使得這4個人一直贏比賽呢?當然,這忽略了體力不支等現實因素。於是。在場下我就小小的brainstorm了一下。給了這個問題的一些如果與簡化 假如有n n 5...