zoukankan      html  css  js  c++  java
  • FJOI2016 建筑师

    FJOI2016 建筑师 [* easy]

    给定 (n,A,B) 求有多少个长度为 (n) 的排列满足从左看单调栈大小为 (A),从右看为 (B)

    多次查询。

    (nle 5cdot 10^4,Tle 2cdot 10^5,A,Ble 100)

    Solution

    (mathcal O(Tn+n^2)) 的容易的,考虑枚举最大值位于 (i) 处,那么前面就是 (i-1) 的序列 (A) 个段的方案数,后面就是 (n-i) 的序列 (B) 个段的方案数。(给 (A,B) 先分别减 (1)

    然后序列计数可以直接 dp,不难注意到答案就是第一类斯特林数,这是因为可以考虑将元素分组,那么最大值显然在最开头(相当于强行规定了顺序,但其余任意排),然后将最大值从小到大排序可以认为是无序,即将 (i) 个元素分成 (A) 个圆排列的方案数。

    所以不难注意到答案为:

    [sum inom{n-1}{i-1}egin{bmatrix}i-1\Aend{bmatrix} egin{bmatrix}n-i\Bend{bmatrix} ]

    方便起见,(ileftarrow i-1,nleftarrow n-1),答案即:

    [sum inom{n}{i}egin{bmatrix}i\Aend{bmatrix} egin{bmatrix}n-i\Bend{bmatrix} ]

    不难发现等价于 (inom{A+B}{A}egin{bmatrix}n\A+Bend{bmatrix}),即将 (n) 个元素分成 (A+B) 个圆排列,再从其中 (A+B) 选出 (A) 个圆排列分给第一组的方案数。

    于是复杂度 (mathcal O(nA+T))

  • 相关阅读:
    岁月静好
    一代才女林徽因 人生若只如初见
    HTML5手机网站开发页面宽度解决方案
    上帝是公平的
    我一直在坚持,你呢?
    让生命更美丽!
    网页跳转,可以任意规定延迟显示的时间
    !important的用法
    小站初建
    GTD之图表
  • 原文地址:https://www.cnblogs.com/Soulist/p/13854770.html
Copyright © 2011-2022 走看看