当前位置: 首页 > news >正文

P5400 [CTS2019] 随机立方体

P5400 [CTS2019] 随机立方体

首先看到恰好非常不爽,考虑利用二项式反演转化为至少。令 \(f(i)\) 表示钦定有 \(i\) 个极大值的方案数,则答案为:

\[\frac{1}{(nml)!}\sum_{i} (-1)^{i-k}\binom{i}{k} f(i) \]

下文为了方便,记 \(S=nml\)。现在我们的问题是怎么求 \(f(i)\)。首先我们先选出 \(i\) 个极大点,并且钦定好他们的大小顺序,这个的方案数是 \(n^{\underline i}m^{\underline i}l^{\underline i}\),然后接下来会发现我们极大点会对一些点产生限制,而没有限制的点总共有 \((n-i)(m-i)(l-i)\) 个,我们给他们随便赋值即可,方案数为 \((nml)^{\underline{(n-i)(m-i)(l-i)}}\)

现在的问题在于我们要求出对于极大点以及他们限制的点填数字的方案数。此时我们的难点在于每个最大值的限制是有交的,不好统计。我们考虑对于每个点,只考虑限制它的最小的极大点,这样的话每个极大点的限制就两两不交,且我们可以算出每个极大点的限制点数。如下图所示:

* * 3 *
* 2 * *
* * * *
* * * 1

这三个点分别是极大值点,我们现在来看每个点被哪个点限制:

3 2 3 1
2 2 2 1
* 2 3 1
1 1 1 1

平移一下可以得到:

* 3 2 1
3 3 2 1
2 2 2 1
1 1 1 1

那么实际上我们是可以轻松算出第 \(i\) 大的极大值对应限制的点数的。设 \(g(i)=(n-i)(m-i)(l-i)\),那么第 \(i\) 小的极大点限制的点数就是 \(g(i-1)-g(i)\),而此时我们前面已经填过了一些数,剩下的还有 \(g(0)-g(i)\) 个,而当前的极大点固定要填剩下的数中的最大值,所以方案数实际上是 \((g(0)-g(i)-1)^{\underline{g(i-1)-g(i)-1}}\)

于是我们可以得出,对于选 \(i\) 个极大点的方案数为:

\[\begin{aligned} &\prod_{j=1}^i(g(0)-g(j)-1)^{\underline{g(j-1)-g(j)-1}}\\ =&\prod_{j=1}^i \frac{(g(0)-g(j)-1)!}{(g(0)-g(j-1))!}\\ =&(g(0)-g(i)-1)! \prod_{j=1}^{i-1} \frac{1}{g(0)-g(j)} \end{aligned} \]

于是可以得出:

\[\begin{aligned} f(i)&=n^{\underline i}m^{\underline i}l^{\underline i}(nml)^{\underline{(n-i)(m-i)(l-i)}}(g(0)-g(i)-1)! \prod_{j=1}^{i-1} \frac{1}{g(0)-g(j)}\\ &=n^{\underline i}m^{\underline i}l^{\underline i}\frac{g(0)!}{(g(0)-g(i))!}(g(0)-g(i)-1)! \prod_{j=1}^{i-1} \frac{1}{g(0)-g(j)}\\ &=n^{\underline i}m^{\underline i}l^{\underline i}g(0)!\prod_{j=1}^{i} \frac{1}{g(0)-g(j)}\\ \end{aligned} \]

所以最终答案就是:

\[\begin{aligned} &\frac{1}{(nml)!}\sum_{i} (-1)^{i-k}\binom{i}{k} f(i)\\ =&\frac{1}{(nml)!}\sum_{i} (-1)^{i-k}\binom{i}{k} n^{\underline i}m^{\underline i}l^{\underline i}g(0)!\prod_{j=1}^{i} \frac{1}{g(0)-g(j)}\\ =&\sum_{i} (-1)^{i-k}\binom{i}{k} n^{\underline i}m^{\underline i}l^{\underline i}\prod_{j=1}^{i} \frac{1}{g(0)-g(j)}\\ \end{aligned} \]

预处理出 \(g(0)-g(j)\) 的逆元前缀积即可单次 \(O(n)\) 计算,而处理逆元可以用经典方法做到 \(O(n)\),总复杂度 \(O(Tn)\),可以通过。

http://www.jsqmd.com/news/426907/

相关文章:

  • IndexTTS-2-LLM定时任务配置:Cron调度语音生成案例
  • Qwen3-0.6B-FP8新手入门指南:一键开启思考模式,体验AI推理全过程
  • 基于KART-RERANK的微信小程序内容推荐引擎实战
  • YOLO12模型热更新:不停机升级的部署方案
  • 手把手教你用DAMOYOLO-S检测图片中的物体:Web界面操作超简单
  • EmbeddingGemma-300m分布式部署指南:应对大规模数据处理
  • VibeVoice用于电话机器人:呼叫中心语音应答系统构建
  • Meixiong Niannian画图引擎参数调节指南:步数、CFG、种子详解
  • AI印象派艺术工坊安全合规吗?本地部署数据隐私保护案例
  • Qwen3-TTS-12Hz-1.7B-VoiceDesign与WebSocket集成:实时语音交互系统
  • 【高企日报】3亿家OPC一人公司:占中国GDP的半壁江山
  • Youtu-Parsing企业级部署教程:GPU显存优化+开机自启+日志监控完整指南
  • Nano-Banana Studio在服装质量检测中的应用实践
  • DeerFlow自动化运维:使用Ansible实现批量部署
  • ypress 调试深度解析
  • 墨语灵犀多场景落地:国际科研合作——论文摘要/图表标题/方法论翻译
  • 二次元秒变真人照片:Anything to RealCharacters效果实测
  • 告别手动标注!用PP-DocLayoutV3自动分析扫描件,提升OCR识别准确率
  • EVA-01实战教程:EVA-01与RAG结合构建垂直领域视觉知识引擎(如航天工程)
  • Ostrakon-VL-8B效果展示:看AI如何精准识别商品、检查标签、评估合规性
  • Qwen3-TTS声音克隆效果分享:意大利语那不勒斯方言语音生成实录
  • 从JNI NaN陷阱到C++内存模型:深入剖析Debug与Release行为差异的根源
  • P10209 [JOI 2024 Final] 路网服务 2 / Road Service 2
  • 星图平台Qwen3-VL:30B快速上手:3步完成镜像选配、Ollama测试与API验证
  • Springboot3+vue3实现富文本编辑器功能
  • 八数码与双向广搜
  • GLM-4-9B-Chat-1M在金融领域的应用:财报自动分析与报告生成
  • Keil5 MDK开发STM32时,如何调用Nanbeige 4.1-3B生成调试注释
  • BGE Reranker-v2-m3实战教程:将重排序结果接入Elasticsearch插件实现混合检索增强
  • Fish-Speech-1.5算法优化实战:降低语音延迟至150ms