CF403D Beautiful Pairs of Numbers

编程入门 行业动态 更新时间:2024-10-12 10:27:38

CF403D <a href=https://www.elefans.com/category/jswz/34/1767633.html style=Beautiful Pairs of Numbers"/>

CF403D Beautiful Pairs of Numbers

题意:
在一个长度为n的序列中,找k个长度互不相同的区间互不重叠,求方案数。
其实每个区间长度不等是个很烦的限制。
不如按照从小到大排序,最后再打乱即可。
发现还可以保证所有区间相邻,即前一个区间的右边界,就是下一个区间的左边界-1,这样把剩下的空格填充进去即可。
问题转化为:
区间总长度为 i i i,里面放入 j j j个相邻的区间,前面比后面小,有多少种方法。
感觉这个dp挺妙的。
f i + j , j + = f i , j f i + j + 1 , j + 1 + = f i , j f_{i+j,j}+=f_{i,j}\\f_{i+j+1,j+1}+=f_{i,j} fi+j,j​+=fi,j​fi+j+1,j+1​+=fi,j​
表示所有区间一起增加1或者一起增加1后在前面加入一个大小为1的区间(由于可能最小的区间大小为1,所以要先加。可以证明一定能包含所有情况)。
然后从k到n枚举总区间长度,假设为n’。
把一个区间看成一个球,加上后面的剩下n-n’的空位,一共有n-n’+k个球,随意排列
所以答案加上 f n ′ , k × ( n − n ′ + k k ) × k ! f_{n',k} \times \binom{n-n'+k}{k} \times k! fn′,k​×(kn−n′+k​)×k!即可。

更多推荐

CF403D Beautiful Pairs of Numbers

本文发布于:2024-02-26 23:43:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1704430.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Beautiful   CF403D   Numbers   Pairs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!