首页 > 其他分享 >凸多边形 k 划分计数

凸多边形 k 划分计数

时间:2024-08-06 15:51:38浏览次数:7  
标签:连边 前缀 凸多边形 计数 划分 序列 号点

凸多边形 k 划分计数

给定 \(n,k\),求凸 \(n\) 边形划分成 \(k\) 个不相交部分的方案数。

sol

先引入一个定理:

Raney 定理:和为 \(1\) 的整数序列的所有循环位移序列中有且仅有一个满足任意前缀和大于 0。

证明可以考虑任取一个循环位移序列,然后求前缀和,找到最靠右的前缀和最小的位置向后一位作为起点。(实际上可以在坐标系上画出前缀和的折线图,拿斜率 \(\frac{1}{n}\) 的直线去切)

下面我们要构造双射。

我们给一个凸多边形顶点顺时针(或逆时针)编号为 \(1\) 到 \(n\)。

从 \(2\) 号点开始,维护一个栈。每遍历到一个点 \(i\),先向栈顶塞入 \(i\)。再进行 \(t\ge 0\) 次 pop 操作,每次操作从栈顶向下的位置(也就是 \(i\) 前面)弹出正整数个点,然后把该点与栈顶向下的点连边(如果栈大小变为 1,与 1 号点连边),\(t\) 就是 \(i\) 号点向前连边的数量。

同时维护一个序列,向栈中加入元素时向序列中 push_back 一个 1;弹掉 \(p>0\) 个元素时向序列中 push_back 一个 \(-p\)。为了保证整个序列的和为 1,最后再加入一个负数,使栈中只剩一个元素。

可以发现,生成的序列的任意前缀和大于 0。且对于任意一个和为 1,前缀和大于 0,由 \(n-1\) 个 1 和 \(k\) 个负数构成的序列,我们都可以生成互不相同的多边形划分方案。所以二者构成双射。

我们只要数出由 \(n-1\) 个 1 和 \(k\) 个负数构成的和为 1 的序列数量,再根据 Raney 定理乘上系数 \(\dfrac{1}{n+k-1}\) 即可。

数量就是 \(\dfrac{1}{n+k-1}\dbinom{n+k-1}{k}\dbinom{n-3}{k-1}\)。

标签:连边,前缀,凸多边形,计数,划分,序列,号点
From: https://www.cnblogs.com/FreshOrange/p/18345296

相关文章

  • IEC104初学者教程,第九章:计数量召唤流程详解
    第九章:计数量召唤流程详解平时学习规约或调试IEC104或IEC101设备,需要IEC104/101模拟器,推荐一款:主站下载地址:IEC104主站模拟器从站下载地址:IEC104从站模拟器在IEC60870-5-104(简称IEC104)协议中,计数量召唤(CounterInterrogation,简称CI)是一种特定的功能,用于获取远程终端设备(RTU......
  • COUNTING-SORT(计数排序) and
    计数排序             计数排序假设n个输入元素(适用于小范围区间)中的每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为.    计数排序的基本思想:对每一个输入的元素x,确定小于x的元素个数。利用这一信息,就可以直接把x......
  • FPGA设计之跨时钟域(CDC)设计篇(5)----同步FIFO的两种设计方法(计数器法/高位扩展法 | 手撕
    1、什么是FIFO?        FIFO(FirstInFirstOut)是一种先进先出的数据缓存器,在逻辑设计里面用的非常多。它是一种存储器结构,被广泛应用于芯片设计中。FIFO由存储单元队列或阵列构成,第一个被写入队列的数据也是第一个从队列中读出的数据。        FIFO设计可......
  • 背包计数问题的多项式优化
    此优化针对以下计数问题:n件物品,背包容量为m,第i件物品体积为\(a_i\),求装满的方案数。(01背包)n种物品,背包容量为m,第i件物品体积为\(a_i\),数量无限,求装满的方案数。(完全背包)n种物品,背包容量为m,第i件物品体积为\(a_i\),数量为\(b_i\),求装满的方案数。(多重背包)\((1\l......
  • JVM内存结构划分
    JVM内存结构的划分1.堆就相当于当你new一个对象的时候,就会分配一个堆内存给你,当对象销毁时就会有垃圾回收机制来回收这个对象的堆空间。2.栈就好比一串珠子,你只能从一头加或者取,要取后面的就要把前面的取出来才可以。3.堆内存作用就是用来存放java中的对象和数组,当new一个......
  • 【笔记】计数选讲:容斥、LGV、集合幂级数、GF 2024.8.2
    今天写的很乱。[HEOI2013]SAO容斥。因为我们已经知道父亲\(<\)儿子时的情况(\(n!/\prod_isiz_i\),也适用于森林),那么儿子\(<\)父亲的情况就容斥掉,无限制的就当作那条边不存在。树上背包,记录当前节点为根的连通块大小和容斥系数的积。*[ECFinal23A]DFSOrder4转写为:统计多......
  • BZOJ2839/LG10596 集合计数 题解(二项式反演+扩展欧拉定理)
    题目大意:一个有\(N\)个元素的集合有\(2^N\)个不同子集(包含空集),现在要在这\(2^N\)个集合中取出若干集合(至少一个),使得它们的交集的元素个数为\(K\),求取法的方案数,答案模\(10^9+7\)。为表述方便,不妨设这\(i\)个元素分别为\(1\simn\)。前置知识:二项式反演。考虑设\(g(......
  • 哪位大佬知道为啥最后计数是0吗? 实际是有数据的
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【JethroShen】问了一个Python数据处理的问题,问题如下:哪位大佬知道为啥最后计数是0吗?实际是有数据的二、实现过程这里【瑜亮老师】给了一个指导,如下所示:这不是发生错误了么?你设置的发生错误return0,它肯定变成0了......
  • JVM内存结构的划分
    JVM内存结构的划分目录JVM内存结构的划分JVM内存区域1.栈(Stack)2.堆(Heap)3.方法区(MethodArea)4.程序计数器(ProgramCounterRegister)5.本地方法栈(NativeMethodStack)堆和栈的主要区别示例Java虚拟机(JVM)的内存模型是Java程序运行的基础之一,理解JVM内存结构对于深入学习Java编......
  • FPGA知识基础之--500ms计数器,边沿检测,按键消抖
    目录前言一、边沿检测1.1使用背景1.2方法:打拍法1.2.1背景1.2.2原理1.2.3上升沿二、计数器2.1原理2.2RTL代码三、按键消抖前言一、边沿检测1.1使用背景在我们设计电路时,经常会遇到需要继续检测上升沿和下降沿的电路,因此需要对边沿继续检测1.2方法:打......