雅礼集训 2018 Day4
cube
考虑 维基础图形, 它的所有点集可以用向量 来表示.
考虑用它来表示线段, 相当于在原来的向量里任取一个位置出来, 这个位置取遍 来表示两个点构成的线段, 其他位置的选择代表着不同位置的线段.
考虑用它来表示正方形, 相当于在原来的向量里任取两个位置出来, 这两个位置取遍 来表示两个线段集构成的面, 其他位置的选择代表着不同位置的正方形.
那么拓展到 维, 相当于取 个出来作为基础向量, 其他部分任取代表不同的元素. 那么可以发现方案数就是 .
或者通过打表得出结论.
代码
divide
首先有个很显然的 DP: 表示前 个数, 选了 个到 集合的最大值, 那么如果能够快速算出一个数放入 , 的贡献就做完了.
发现贡献不好算, 一般思路是用数据结构维护. 但是注意到答案和 的顺序是无关的, 于是可以将 重新排序使得这个贡献容易计算.
可以构造一个排列, 使得 , 或者 , 或者. 这样贡献就很好算了.
幸运的是, 这样的排列是可以构造出来的. 考虑将 排序, 考虑 和 的关系, 然后可以将其转化成一个 规模为 的子问题.
代码
magic
想到容斥, 设 表示至少 个魔术对的方案数, 然后通过二项式反演得出答案.
然后将一个魔术对看成将这个颜色的球减少 1, 假设最终每个颜色的球有 个, 那么答案就是 .
发现每个颜色是独立的. 于是考虑其生成函数 . 答案就是所有 乘积的系数(最后不要忘记乘 ).
注意到 , 那么直接分治 NTT 解决就好了.
代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)