zoukankan      html  css  js  c++  java
  • 多校模拟9

    A.s1mple

    直接做不好做,考虑求出答案数组经过某种变换后的数组,再经过逆变换求出答案数组。考虑求出答案的超集数组。
    那么实际上就是钦定一些位置必须选1,其他位置任意的方案数。
    假如钦定了一些位置是1,那么可以发现方案数只和每一个极长1连续段有关,于是可以暴力枚举每个极长连续1段的长度,总状态数为n的整数划分数。
    给出的矩阵看成邻接矩阵,那么(b_{i,j}=1)等价于(i)(j)有一条边。那么极长连续1段等价于可以将这个某个点集连成一条链。
    假如已经确定了(f(S))表示将(S)内的点集连成一条链的方案数,并且枚举了一个n的划分,那么只要将这些(f(S))进行子集卷积,方案数就是(2^n-1)处的系数。由于集合的总长度恰好是n,所以这里的子集卷积得到的最后一项系数恰好就是对的。
    于是可以得到答案的超集数组,然后进行(fwt)即可(O(1))询问。

    B.s2mple

    答案可以转化为给(S[l:r])加上一个前缀或者一个后缀的方案,两种方案不同当且仅当前缀不同或者后缀不同。
    加上前缀可以考虑这个节点在(SAM)上的子树,那么只要求出子树每个节点能够加上的本质不同后缀数,这个东西可以在(SAM)上走转移边(dp)得到。
    于是预处理一下每个节点的子树和就行了。

    C.s3mple

    首先把整个序列中的最大值提出来,然后可以划分成两个子问题,于是可以枚举左右的大小和总权值暴力(dp)
    然后将(dp)数组写成生成函数,发现转移实际上就是做卷积。然后可以用点值来做(dp)
    现在的问题是询问,要插值出这个多项式的某项系数,那么直接将拉格朗日插值的式子展开即可。
    发现复杂度有点高,所以可以先求出所有多项式的积,求某一项的时候除掉一个多项式即可。

  • 相关阅读:
    ecshop里的$_CFG从哪来的
    高效PHP程序必知的53个技巧
    Jquery结合datagrid框架
    PHP数据类型转换(字符转数字,数字转字符)
    php 操作数组 (合并,拆分,追加,查找,删除等)
    css3制作导航栏
    php日期转时间戳,指定日期转换成时间戳
    PHP 时间与字符串的相互转化
    php 生成.txt文件
    linux PHP yum 安装phpzie
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/13357289.html
Copyright © 2011-2022 走看看