当前位置:网站首页>CCPC 2021 Weihai - G. shinyruo and KFC (combination number, tips)
CCPC 2021 Weihai - G. shinyruo and KFC (combination number, tips)
2022-07-05 20:23:00 【Dimple】
G. Shinyruo and KFC
The question
Altogether n n n Kind of food , Each food has a i a_i ai individual . The total number of food should not exceed 1 0 5 10^5 105.
Now I want to share these foods with k k k personal , Everyone can take many things , But each kind of food takes at most 1 individual .
about k k k from 1 To m m m, Output the food distribution plan separately .
Answer model 998244353 998244353 998244353.
1 ≤ m , n ≤ 5 ⋅ 1 0 4 1 \le m,n \le 5 \cdot 10^4 1≤m,n≤5⋅104
0 ≤ a i ≤ 1 0 5 , ∑ i = 1 n a i ≤ 1 0 5 0\le a_i\le 10^5,\ \sum_{i=1}^n a_i\le 10^5 0≤ai≤105, ∑i=1nai≤105
Ideas
Common to one food a i a_i ai individual , among k k k personal , Each person can get one at most , Then the distribution scheme is C ( k , a i ) C(k, ai) C(k,ai).
that n Kind of food , among k The overall personal distribution plan is : ∏ i = 1 n C ( k , a i ) \prod_{i=1}^{n} C(k, a_i) ∏i=1nC(k,ai);
Re traversal m personal , In this case, the minimum time complexity is O(n * m), Overtime .
And the title says ai The total does not exceed 1e5, that ai The number of species is 1 e 5 \sqrt {1e5} 1e5 Level , For repetition, use fast power to find power .
Preprocess the inverse element to find the combination number .
In this way, the time complexity is reduced to : O ( m n l o g n ) O(m \sqrt n \ logn) O(mn logn)
Code
#include<bits/stdc++.h>
using namespace std;
#define Ios ios::sync_with_stdio(false),cin.tie(0)
#define int long long
#define fi first
#define se second
#define endl '\n'
map<int,int> mp;
const int N = 200010, mod = 998244353;
int T, n, m;
int a[N];
struct node{
int x, cnt;
}b[N];
int fac[N], inv[N], finv[N];
int qmi(int x, int y)
{
int ans = 1;
while(y)
{
if(y & 1) ans = ans * x % mod;
x = x*x % mod;
y >>= 1;
}
return ans;
}
void init(){
fac[0]=inv[0]=inv[1]=finv[0]=finv[1]=1ll;
for(int i=1;i<N;i++)fac[i]=fac[i-1]*i%mod;
for(int i=2;i<N;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for(int i=2;i<N;i++)finv[i]=finv[i-1]*inv[i]%mod;
}
inline int C(int a,int b){
if(b>a)return 0;
else return fac[a]*finv[a-b]%mod*finv[b]%mod;
}
signed main(){
Ios;
cin >> n >> m;
for(int i=1;i<=n;i++) cin >> a[i], mp[a[i]]++;
int cnt = 0;
for(auto it : mp)
{
cnt++;
b[cnt] = {
it.first, it.second};
}
init();
for(int i=1;i<=m;i++)
{
int ans = 1;
for(int j=1;j<=cnt;j++)
{
ans = ans * qmi(C(i, b[j].x), b[j].cnt) % mod;
}
cout << ans << endl;
}
return 0;
}
Experience
- If n The sum of the numbers does not exceed m, Then the number of types of these numbers is m \sqrt m m Level .
边栏推荐
- 1、强化学习基础知识点
- Schema and model
- Leetcode skimming: binary tree 17 (construct binary tree from middle order and post order traversal sequence)
- Relationship between mongodb documents
- Unity editor extended UI control
- 全国爱眼教育大会,2022第四届北京国际青少年眼健康产业展会
- 怎么挑选好的外盘平台,安全正规的?
- CCPC 2021威海 - G. Shinyruo and KFC(组合数,小技巧)
- 微信小程序正则表达式提取链接
- Y57. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (30)
猜你喜欢
About the priority of Bram IP reset
全国爱眼教育大会,2022第四届北京国际青少年眼健康产业展会
解决php无法将string转换为json的办法
Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
鸿蒙os第四次学习
Mysql频繁操作出现锁表问题
【数字IC验证快速入门】8、数字IC中的典型电路及其对应的Verilog描述方法
小程序事件绑定
. Net distributed transaction and landing solution
JS implementation prohibits web page zooming (ctrl+ mouse, +, - zooming effective pro test)
随机推荐
mongodb基操的练习
1: Citation;
Practical demonstration: how can the production research team efficiently build the requirements workflow?
c语言oj得pe,ACM入门之OJ~
小程序事件绑定
点云文件的.dat文件读取保存
[Yugong series] go teaching course in July 2022 004 go code Notes
ROS2专题【01】:win10上安装ROS2
CCPC 2021威海 - G. Shinyruo and KFC(组合数,小技巧)
Go language | 03 array, pointer, slice usage
【愚公系列】2022年7月 Go教学课程 004-Go代码注释
MySql的root密码忘记该怎么找回
解决Thinkphp框架应用目录下数据库配置信息修改后依然按默认方式连接
2022北京眼睛健康用品展,护眼产品展,中国眼博会11月举办
【数字IC验证快速入门】6、Questasim 快速上手使用(以全加器设计与验证为例)
信息学奥赛一本通 1337:【例3-2】单词查找树 | 洛谷 P5755 [NOI2000] 单词查找树
y57.第三章 Kubernetes从入门到精通 -- 业务镜像版本升级及回滚(三十)
实操演示:产研团队如何高效构建需求工作流?
本季度干货导航 | 2022年Q2
19 Mongoose模块化