d
挑選隊友
進入討論
77/304
通過
輸入包括兩行
第一行包括三個數n, m, k,表示共有n位選手,m個群,需要有k名選手被選擇
第二行包括m個數,第i個數表示第i個群有si個選手
n ≤ 100000, m ≤ k ≤ n
輸出包括一行
第一行輸出方案數
由於輸出可能比較大,你只需要輸出在模998244353意義下的答案
示例1
複製
5 3 4
1 2 2
複製
4
思路:很明顯是乙個生成函式的題目。多項式相乘且有模數用nnt即可,注意用佇列模擬,不然會超時。或者直接用分治fft也行。
//nnt
#includeusing namespace std;
typedef long long ll;
const int maxn = 2e5 + 50;
const ll mod = 998244353;
inline ll qpow(ll a, ll b)
return sum;}
inline ll inv(ll a, ll _mod)
struct ntt }
void dft(vector&a , int flag)
}} if (flag == -1)
}void mul(vector& a,vector& b,int m)
} ntt;
vectorv[maxn];
ll fac[maxn], inv[maxn];
void init(int n)
inline ll c(int n, int m)
queueq;
int main()
while(q.size()>1)
printf("%lld\n",v[q.front()][k-m]);
return 0;
}
Wannafly挑戰賽6 D 鎖
時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 題目描述 106號房間共有n名居民,他們每人有乙個重要度。房間的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複...
Wannafly挑戰賽16 D 打怪(DP)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 有a種 b種屬性,和c種怪物。對於第k種怪物,給出 i和屬性j的搭配在乙個單位時間內對其造成的傷害h k,i,j。已知一開始使用 i,需要時間x i,使用屬性i,需...
Wannafly挑戰賽22 D 整數序列
給出乙個長度為n的整數序列a1,a2,an,進行m次操作,操作分為兩類。操作1 給出l,r,v,將al,al 1,ar分別加上v 操作2 給出l,r,詢問 第一行乙個整數n 接下來一行n個整數表示a1,a2,an 接下來一行乙個整數m 接下來m行,每行表示乙個操作,操作1表示為1 l r v,操作2...