• 杂题选讲1&2



    把序列排序后
    问题转化为子序列两两之间的异或和大于等于k
    用户(Trie)树优化(dp)
    因为不满足单调性所以不能用二分来优化

    (ans=sum_{i=1}^{n}n%i)
    (ans=sum_{i=1}^{n}(n-n/i*i))
    (ans=n^2-sum_{i=1}^{n}i*(n/i))
    从实际含义入手
    (ans=n^2-sum_{i=1}^{n}d1(i))
    ((dk(i)=sum_{j|i}j^k))
    线性预处理即可
    复杂度(O(N+T))

    原先做(SA)的题时用过这个套路
    枚举长度(len*2),每隔(len)插一个点
    这样对于相邻两个关键点求出最长公共前缀和最长公共后缀
    那么答案串便可以在这个区间里滚动
    类似哈希的去求贡献
    假如(S[i+1]=0),根据平方串的性质可以让(H[i]=0)来解决前导零

    其中ki给定
    考虑对于每个组再分组
    每个组被(k_i)个人分成了(k_i+1)个小组
    发现有(k_i)个小组大于(0,1)个小组可能等于(0)
    为了统一化,让前(k_i)个小组不包含被选中的人,
    条件都变成每个小组非负
    直接组合数计算即可

    转化为其他组在(1)之前被丢掉的概率之和
    (i)的贡献便是(frac{A[i]}{A[i]+A[1]})

    是原来一道提答题的部分分
    对于每个数(x)它自主删的概率便是(frac{1}{d(x)})
    加和便是答案
    这道题需要用到(min_25)

    神奇的期望线性性!!
    (E_G)代表每拿一个蓝球绿球被拿的期望个数
    (E_G=(E_G+1)*frac{G}{B+G})
    (E_G=frac{G}{B})
    所以绿球的贡献便是(frac{GK}{B})
    对于每个红球可以分开考虑
    它不被拿出的概率(P_R=(frac{1}{B+1})^k)
    红球的贡献便是(E_R=R*(1-P_R))

    考虑预处理出可能对答案造成贡献的点对
    对于一个右端点(r),左端点(x,y)
    一定满足,(a_x<a_y)
    并且满足(a_r-a_y<a_y-a_x)
    (2*(a_r-a_y)<a_r-a_x)
    也就是说差值至少变为了一半
    所以对于一个确定的右段点,最多有(log)
    拿数据结构去求出并且维护即可

    考虑对每个(|i|)所在的两个变量之间连一条边(一个除外)
    那么每个联通块只会是链或者环
    链就用(dp)来搞,环的话就枚举断开的取值来变成链

    考虑容斥,先钦定一些边不被覆盖
    之后每个联通块两两匹配
    (dp[i][j])代表(i)的子树大小为(j)的方案数
    复杂度(O(n^2))
    钦定的时候加一个(-1)的系数便可以只做一次(dp)

    对于每个颜色整一个(a[i])次的多项式
    其中第(j)项代表至多(j)个块的方案数:(C(a[i]-1,j-1)/j!)
    之后用(FFT)再容斥一下求出总的方案数
    就可以(O(1))的回答问题啦

    (f[i])代表(i)(m)列每列都不同的方案数
    (g[i])代表(i)(m)列每行都不同,每列都不同的方案数
    则有:
    (f[i]=A_{C^n}^{m})

    由斯特林反演得到:


    (g[i])代表恰好有(i)个联通块的方案数
    (f[i])代表(i)划分下的总方案数

    现在的问题便是求(f[i])
    (f)的限制是不同集合之间不能有连边
    所以枚举子集划分,设(x_i)代表(i)这个图是否选
    所以便可以列出若干个异或方程
    高斯消元一下求出主元的个数(cnt)
    主元不可以随便选,其他的图可以,贡献就是(2^{S-cnt})
    最后斯特林反演一下便可以得到(ans=g(1))

  • 相关阅读:
    Linux Bash管理
    Linux文件查看
    Linux文件目录
    yum Linux软件安装工具
    第十六、十七天,关于面向对象
    第十四天,内置函数
    第十二天
    第十一天
    第十天
    第九天(开始函数)
  • 原文地址:https://www.cnblogs.com/AthosD/p/12651428.html
Copyright © 2020-2023  润新知