题目大意
给定一个不严格凸的多边形, 求其三角剖分的数量, 其中切出的三角形面积不能为 , 同时也不要求完全切完.
解法概要
容斥原理其实就是凑某个权函数, 我们直接思考这里的权是怎么凑的. 对于任意连续的 条边, 我们假设有 这么多种方案将 条边当做一条边处理, 换句话说, 对于一条包含 个线段的边, 我们有 , 有 中方法将其当做 条边来处理. 我们最后将乘积 算出之后, 将系数和 Catalan 数点乘.
为了让答案是对的, 我们要正确地设置 , 为此我们要看贡献是怎么累计的. 考虑全体三角剖分, 允许留下 面积三角形, 那么这样一个方案会被统计多少次呢? 把所有零面积三角形去掉, 对于每条边的端点, 会被拆成一些正整数的和, 一个 会算做 种方案. 是什么呢? 是它实际下面有多少种划分成 面积三角形的方案, 也就是
我们需要让 是什么呢? 根据题面, 任何正整数长度都是允许的, 所以
那么
由于外层有个分治 FFT, 所以复杂度已经被冲到 了. 所以在怎么求 这一块, 预计的是大家各凭本事, 如果完全没有本事也能获得 分. std 则是直接找出了一个整式递推式, 具体递推式长什么样子还请看代码.
若干注记
Remark 1 从 analysis 可以看出, 本题的题面是很灵活的, 最开始的想法是让 , 也就是不能有退化成三角形的多边形, 但是这样的话容斥系数更容易被猜出来, 所以未被采用, 于是将 微操得到了现在的题面.
Remark 2 预计的情况是好几个 的人, 过 的人预计是用一些需要 FFT 但是好写的做法来求的 . 实际情况是一个 分一个 分 (qazswedx), 好像是维护了一个二维整式递推啥的. 看来我对现在大家的下限和上限都估计的不太准确...
Question 1 有哪些多项式族 满足 的计算可以在非平凡的时间内解决? 例子是 . 或者解决其弱化版, 如果 , 在 内解决?
多余的话
-
这题是逆向工程的产物. 出题的时候起点是如何设计一个 的区间 DP 可以做, 但是有更快的做法的数数题, 然后就对着造了一个题意.
-
这题是 考前 4 天 才得知要出的.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)