P8114 [Cnoi2021] 六边形战士

news/2025/9/18 7:51:09/文章来源:https://www.cnblogs.com/Xuan-qwq/p/19097983

传送

非常好玩的题!

首先你大概率看过一些“无字证明”,其中很经典的是这个:

证明:用若干个边长为 \(1\),顶角为 \(60\) 度的菱形拼成一个边长为 \(n\) 的正六边形,三个方向的菱形个数一定相等。

这是一个经典的无字证明,虽然前置的说明要费很大功夫,不过你不关心这个。你只要知道一种拼法可以对应一种三维空间中的方块摆放方式就好了。

而这个结论和题有什么关系呢?如果你看过一些小视频或者论文什么的,就会发现,这张匹配的图怎么和定理的一种证明方式这么像!

(当然没看过也没关系)于是你可以把每一种匹配对应成一种菱形的拼法,再对应到方块的摆放方式。由此你得到了经过转化后的题意:

在一个长 \(a\)\(b\)\(c\) 的盒子内放置若干个边长为 \(1\) 的正方体,且每个正方体下方,后方,左方均没有空位,求放置的方案数。

此时你发现高度 \(\ge\) 一个值的区块是联通的,于是你想到了分高度考虑。具体地,将我们的摆放方式一层一层剖开,并在边缘处划线,俯视图就像这样:

然后就变成了一个左下到右上的计数问题,于是你通过将路径向左上方平移一格的方式将其分离,变成一个可以直接行列式做的结论题,并得到答案就是:

\[\begin{vmatrix} \binom{a+b}{a} & \binom{a+b}{a-1} & \cdots&\binom{a+b}{a-c+1}\\ \binom{a+b}{a+1}&\binom{a+b}{a}&\cdots&{a+b\choose a+2-c}\\ \vdots&\vdots&\ddots&\vdots\\ \binom{a+b}{a+c-1}&\binom{a+b}{a+c-2}&\cdots&\binom{a+b}{a} \end{vmatrix} \]

此时你写出了高斯消元求行列式的 \(O(n^3)\) 做法,并获得了 \(70\) 分!

但是你并不满足于此,于是你开始推式子,设我们要求的行列式为 \(A\)。我们发现 \(A\) 的每一列都有大量的公因式,所以我们把它提出来:

\[\det(A)=(-1)^{\frac{c(c+1)}{2}} \det(A')\prod_{i=1}^{c}\frac{(a+b)!}{(a+c-i)!(b+i-1)!} \]

其中 \(A'_{i,j}=\prod_{k=j+1}^{c}(a+k-i)\prod_{k=2}^{j}(k-b-1-i)\)

然后这个东西怎么化呢?你又阅读了一遍题面,发现出题人给了你一个公式:

Krattenthaler's formula
\(\displaystyle\det\left(\prod\limits_{k=2}^j(x_i+a_k)\prod\limits_{k=j+1}^n(x_i+b_k)\right)_{i,j=1}^{n}=\prod\limits_{1\le i<j\le n}{(x_i-x_j)}\prod\limits_{2<i\le j\le n}(a_i-b_j)\)

你发现这个式子的格式和 \(A'\) 的格式刚好契合!于是你得到了 \(\det(A')\)

\(\det(A')=\prod_{1\le i<j<c}(j-i)\prod_{2\le i\le j\le c}(a+b+j-i-1)\)

\[\begin{aligned} \det(A)&=(-1)^{\frac{c(c+1)}{2}}\prod_{1\le i<j<c}(j-i)\prod_{2\le i\le j\le c}(a+b+j-i-1)\prod_{i=1}^{c}\frac{(a+b)!}{(a+c-i)!(b+i-1)!}\\ &=\prod_{i=1}^{c-1}i!\prod_{i=1}^{c-1}(a+b+i)^{\underline{i}}\prod_{i=1}^{c}\frac{(a+b)!}{(a+c-i)!(b+i-1)!}\\ &=\prod_{i=1}^{c-1}i!\prod_{i=1}^{c-1}\frac{(a+b+i)!}{(a+b)!}\prod_{i=1}^{c}(a+b)!\prod_{i=1}^{c}\frac{1}{(a+c-i)!(b+i-1)!}\\ &=(a+b)!\prod_{i=1}^{c-1}i!\prod_{i=1}^{c-1}(a+b+i)!\frac{\prod_{i=0}^{a-1}i!\prod_{i=0}^{b-1}i!}{\prod_{i=0}^{a+c-1}i!\prod_{i=0}^{b+c-1}i!}\\ &=\frac{\prod_{i=0}^{a-1}i!\prod_{i=0}^{b-1}i!\prod_{i=0}^{c-1}i!\prod_{i=0}^{a+b+c-1}i!}{\prod_{i=0}^{a+b-1}i!\prod_{i=0}^{b+c-1}i!\prod_{i=0}^{c+a-1}i!} \end{aligned} \]

你发现这个式子可以线性时间内计算!于是这道题就做完了。

另附一个相关的视频:link

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/906981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GitHub每日速递 250918】开发者必藏!336k 星标项目告诉你:前端 / 后端 / AI 岗该怎么学才高效

原文:https://mp.weixin.qq.com/s/Oo5T6g68BNe9QUTL4bHrIg AI外语学习神器Enjoy上线!网页版、桌面版全攻略来袭 everyone-can-use-english 是一个帮助用户学习和使用英语的工具类应用。简单讲,它通过技术手段降低英…

系统里数据又“打架”了?让“少数服从多数”来终结这场混乱!

系统里数据又“打架”了?让“少数服从多数”来终结这场混乱!Quorum(法定人数/多数派)机制由David K. Gifford于1979年提出,是分布式系统中用于在副本间实现不同级别数据一致性与可用性的核心方法。其设计思想借鉴…

Flutter CSV导入导出:大数据处理与用户体验优化

Flutter CSV导入导出:大数据处理与用户体验优化本文基于BeeCount(蜜蜂记账)项目的实际开发经验,深入探讨如何在Flutter应用中实现高效、用户友好的CSV数据导入导出功能。项目背景 BeeCount(蜜蜂记账)是一款开源、简洁…

读人形机器人15未来城市

读人形机器人15未来城市1. 将机器人技术融入城市规划 1.1. 新一轮工业革命的曙光要求我们重新审视城市的设计与功能 1.2. 将机器人技术融入城市规划已不再是未来主义的概念,而是一种现实需要 1.3. 将机器人技术融入城…

解锁智能检索新境界:CriticGPT 赋能检索模型洞察人类偏好

随着大型语言模型技术的快速发展,检索增强生成 (RAG) 系统已成为连接海量知识与精准回答的关键桥梁。然而,传统 RAG 模型在理解和满足用户真实需求方面仍存在明显局限。2024 年 6 月 OpenAI 发布的 CriticGPT 技术,…

NET 中 Async/Await 的演进:从状态机到运行时优化的 Continuation

NET 中 Async/Await 的演进:从状态机到运行时优化的 Continuation C# 的 `async/await` 长期以来是编写简洁、非阻塞代码的基石,但其传统实现——每个异步方法生成一个独立状态机——在高性能场景(如递归或链式异步…

使用 Ansible 管理服务器集群

Inventory Ansible 使用 /etc/ansible/hosts 管理受控服务器列表: --- ungrouped:hosts:node-1:ansible_host: 192.168.1.1ansible_user: johnnode-2:ansible_host: 192.168.1.2ansible_user: janenode-3:ansible_hos…

1现在处于非常破防的阶段,不知道为什么会打成这个样子。 ABC 过得很快。看到 D1 的第一眼就会了,发现转移只需要随便优化一下就能通过 D2,不太想写。E 看上去挺可做,F 看上去是板子题。于是开始写 F,不知道这种代…

US$109 NEC CHIP Smart Remote Key Fob For Benz C E Class (2 Batteries) 433Mhz 10pcs/lot

NEC CHIP Smart Remote Key Fob For Benz C E Class (2 Batteries) 433Mhz 10pcs/lot Package includes:10 pc x NEC CHIP Smart Remote Key Fob For Benz C E Class (2 Batteries) 433Mhz Pictures of NEC CHIP Smart…

Codeforces Round 1051 (Div. 2)

A. All Lengths Subtraction 题意:一个排列,对于每个\(k \in [1, n]\),你都要选择一个长度为\(k\)的子数组使得它们都减一,求有没有方案使得最终所有数都是\(0\)。 考虑\(k\)从大到小,发现做\(n\)的时候\(1\)变成…

US$11 3 Button Flip Folding Remote Key Fob with ID46 Chip 433 MHZ For Hyundai i30 ix35

3 Button Flip Folding Remote Key Fob with ID46 Chip 433 MHZ For Hyundai i30 ix35Package List:1pc x 3 Button Flip Folding Remote Key Fob with ID46 Chip 433 MHZ For Hyundai i30 ix35 Pictures of 3 Button …

US$39.99 3+1 Button Remote Key for Nissan 315Mhz FCC ID KBRASTU15 10pcs/lot

3+1 Button Remote Key for Nissan 315Mhz FCC ID KBRASTU15 10pcs/lotPackage includes:10pc x 3+1 Button Remote Key for Nissan 315Mhz FCC ID KBRASTU15 Pictures of 3+1 Button Remote Key for Nissan 315Mhz FC…

再不学就晚了!RDT LeRobot与RDKS100部署详解

作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 机械臂:LeRobot-SO101 数采机:MacBook-Pro Python3.10 开发机:Ubuntu 22.04, Cuda12.4,8 NVIDIA A100-SXM4-40GB 开发板:RDK OS 4.0.2 Bas…

编译Unity4.3.1f1

参考: 编译 Unity 4.3.1 引擎_unity-source-4.3.1f1-CSDN博客 Unity 4.3.1f1编译调试 - 知乎 Unity source 4.3.1f1 源代码分析-腾讯游戏学堂 附: 早期版本下载(4.x之前的版本)

[.NET逆向] Listary

View Post[.NET逆向] Listary[.NET逆向] Listary v6.3.5.94 前段时间在吾爱论坛闲逛,偶遇一篇帖子,自己便动手实操了一番 原文链接:https://www.52pojie.cn/thread-2025340-1-1.html I.工欲善其事必先利其器 a.List…

US$19 Smart Key Fob For Nissan Micra/Juke/Note Renault Alaska 433MHz

Smart Key Fob For Nissan Micra/Juke/Note Renault Alaska 433MHzPackage includes:1pc x Smart Key Fob For Nissan Micra/Juke/Note Renault Alaska 433MHz Pictures of Smart Key Fob For Nissan Micra/Juke/Note …

py -m pip show workalendar

py -m pip show workalendarpy -m pip show workalendar

【R课堂-电机专栏】为什么提高电机的电压时,转速会随之上升?

本文探讨的问题是 “为什么提高电机的电压时,转速会随之上升?”具体而言,就是当给电机绕组施加的电压升高(增大)时,为什么其转速会随之上升。这一现象看似理所当然,但其背后的原理却涉及诸多物理公式。这个问题…

抽象 CF

一道题在 CF 上有三倍经验,我有个细节假了: \(n \le 10^5\),84 个点的那道在 #64 寄了。 \(n \le 2 \times 10^5\),88 个点的那道在 #88 寄了。 \(n \le 5 \times 10^5\),111 个点的那道直接 A 了。