LOJ #3119「CTS2019 | CTSC2019」随机立方体 (容斥)
博客链接
里面有个下降幂应该是上升幂
还有个bk的式子省略了k^3
CODE
蛮短的
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5000005;
const int mod = 998244353;
int fac[MAXN], inv[MAXN];
inline void PreWork(int N) {
fac[0] = fac[1] = inv[0] = inv[1] = 1;
for(int i = 2; i <= N; ++i) {
fac[i] = 1ll * fac[i-1] * i % mod;
inv[i] = 1ll * (mod - mod/i) * inv[mod%i] % mod;
}
for(int i = 2; i <= N; ++i)
inv[i] = 1ll * inv[i-1] * inv[i] % mod;
}
inline int mul(int a, int b, int c) { return 1ll * a * b % mod * c % mod; }
inline int qpow(int a, int b) {
int re = 1;
while(b) {
if(b&1) re = 1ll * re * a % mod;
a = 1ll * a * a % mod; b >>= 1;
}
return re;
}
inline int C(int n, int m) { return n < m ? 0 : mul(fac[n], inv[m], inv[n-m]); }
int T, n, m, l, k, lim;
int a[MAXN], pre[MAXN], f[MAXN];
int main () {
PreWork(MAXN-5);
scanf("%d", &T);
while(T--) {
scanf("%d%d%d%d", &n, &m, &l, &k); lim = min(min(n,m),l);
if(k > lim) { puts("0"); continue; }
pre[0] = 1;
for(int i = 1; i <= lim; ++i) {
a[i] = (mul(n, m, l) - mul(n-i, m-i, l-i)) % mod;
pre[i] = 1ll * pre[i-1] * a[i] % mod;
}
pre[lim] = qpow(pre[lim], mod-2);
for(int i = lim-1; i >= 1; --i)
pre[i] = 1ll * pre[i+1] * a[i+1] % mod;
for(int i = 1; i <= lim; ++i)
f[i] = 1ll * mul(fac[n], fac[m], fac[l])
* mul(inv[n-i], inv[m-i], inv[l-i]) % mod
* pre[i] % mod;
int ans = 0; int sgn = 1;
for(int i = k; i <= lim; sgn=-sgn, ++i)
ans = (ans + 1ll * sgn * C(i, k) * f[i] % mod) % mod;
printf("%d\n", (ans + mod) % mod);
}
}
LOJ #3119「CTS2019 | CTSC2019」随机立方体 (容斥)的更多相关文章
- LOJ #3119. 「CTS2019 | CTSC2019」随机立方体 组合计数+二项式反演
好神的一道计数题呀. code: #include <cstdio> #include <algorithm> #include <cstring> #define ...
- 【LOJ】#3119. 「CTS2019 | CTSC2019」随机立方体
题解 用容斥,算至少K个极大值的方案数 我们先钦定每一维的K个数出来,然后再算上排列顺序是 \(w_{k} = \binom{n}{k}\binom{m}{k}\binom{l}{k}(k!)^3\) ...
- 「CTS2019 | CTSC2019」随机立方体 解题报告
「CTS2019 | CTSC2019」随机立方体 据说这是签到题,但是我计数学的实在有点差,这里认真说一说. 我们先考虑一些事实 如果我们在位置\((x_0,y_0,z_0)\)钦定了一个极大数\( ...
- LOJ 3119: 洛谷 P5400: 「CTS2019 | CTSC2019」随机立方体
题目传送门:LOJ #3119. 题意简述: 题目说的很清楚了. 题解: 记恰好有 \(i\) 个极大的数的方案数为 \(\mathrm{cnt}[i]\),则答案为 \(\displaystyle\ ...
- LOJ3119. 「CTS2019 | CTSC2019」随机立方体 二项式反演
题目传送门 https://loj.ac/problem/3119 现在 BZOJ 的管理员已经不干活了吗,CTS(C)2019 和 NOI2019 的题目到现在还没与传上去. 果然还是 LOJ 好. ...
- Loj #3124. 「CTS2019 | CTSC2019」氪金手游
Loj #3124. 「CTS2019 | CTSC2019」氪金手游 题目描述 小刘同学是一个喜欢氪金手游的男孩子. 他最近迷上了一个新游戏,游戏的内容就是不断地抽卡.现在已知: - 卡池里总共有 ...
- LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_ ...
- LOJ 3124 「CTS2019 | CTSC2019」氪金手游——概率+树形DP
题目:https://loj.ac/problem/3124 看了题解:https://www.cnblogs.com/Itst/p/10883880.html 先考虑外向树. 考虑分母是 \( \s ...
- @loj - 3120@ 「CTS2019 | CTSC2019」珍珠
目录 @description@ @solution@ @accepted code@ @details@ @description@ 有 \(n\) 个在范围 \([1, D]\) 内的整数均匀随机 ...
随机推荐
- 转载:微信开放平台开发第三方授权登陆(二):PC网页端
微信开放平台开发第三方授权登陆(二):PC网页端 2018年07月24日 15:13:32 晋文子上 阅读数 12644更多 分类专栏: 微信开发 第三方授权登录 版权声明:本文为博主原创文章,遵 ...
- ESP32 - 乐鑫官方Flash烧录工具使用
第一步:打开软件flash_download_tools_v3.6.6.exe 第二步:点击ESP32 DownloadTool,启动我们板子的烧录工具 第三步:按照下图顺序,加载bin_prog目录 ...
- list列表
list列表 list:一个有序的集合 创建列表 语法格式: 列表名 = [元素1, 元素2, 元素3…….,元素n] 注:列表中的元素⽤逗号隔开. 注:列表⾥⾯的元素可以是不同类型的数据. 列表元素 ...
- BFS练习
1. 给定$d,k$, 求最小的被$d$整除, 且各数位仅有$k$和$0$组成的数. $(1\le k\le 9,1\le n\le 1e6)$ 从高位到低位$BFS$, BFS求出字典序最小的方案. ...
- linux时间同步ntpdate
1.安装ntpdate,执行以下命令 yum install ntpdate -y 2.手工同步网络时间,执行以下命令,将从time.nist.gov同步时间 ntpdate 0.asia.pool. ...
- C# EF添加ADO.NET实体数据模型时,产生.Desiger.cs文件为空
// T4 code generation is enabled for model 'D:\DKX4003\work\VWFC_CCS\SrcCCG-branch\CCGSPBOCOne-FCA\C ...
- Html5+Mui前端框架,开发记录(三):七牛云 上传图片
1.Html界面: <div id="container"> <label>凭证:</label> <div id="uploa ...
- JDBC 学习复习7 学习 Apache 开源DBCP 数据源
DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件.单独使用dbcp需要2个包:comm ...
- cli create ssl certkey
cli create ssl certkey ############################### # 创建CA密钥 create ssl rsakey bwsrv-root.key -ex ...
- MySQL数据库的创建&删除&选择
1.MySQL数据库的创建 方法1和2 方法3.使用PHP脚本 PHP中使用mysqli_query函数来创建或删除MySql数据库 mysqli_query函数:两个参数 返回值:执行成功 ...