zoukankan      html  css  js  c++  java
  • BZOJ2339/LG3214 「HNOI2011」 卡农 组合数学

    问题描述

    BZOJ2339


    本题的一些心得

    对于这种无序集合计数类问题,可以通过对方案数除以某个数的阶乘,使得无序化变为有序化。

    设计DP方程时候,应该先有序的列出状态转移方程每一项的来源,并一项项推导式子,可以使得做题过程更加有条理。

    一个拥有良好科学素养的人,一定是有条理的 ——李理


    题解

    对于本题,发现如果最后对答案除以 (m!),则可以使得集合 「有序化」 。

    对于一个满足要求的方案,必须满足以下 (3) 个条件:

    • 没有互相重复的集合

    • 没有空集

    • 集合中的每个元素都必须出现偶数次

    (dp[i]) 代表满足以上三个限制条件时的方案数。

    对于三个限制条件分开考虑。

    首先,对于条件 (3) ,只要知道 (dp[1],dp[2],cdot,dp[i-1]) ,就可以推出 (dp[n]=A_{2^n-1}^{i-1})

    对于条件 (1) ,假设集合 (j) 与集合 (i) 重复,则 (j)(i-1) 种取法,(i)(2^n-1-(i-2)=2^n-i+1) 种取法,本处去掉的贡献为 (dp[i-2] imes (n-1) imes (2^n-i+1))

    对于条件 (2) ,如果有空集,则前 (i-1) 个符合条件,去掉贡献 (dp[i-1])


    (mathrm{Code})

    调试中,码力不行,甘拜下风
    
  • 相关阅读:
    SQL Server 中WITH (NOLOCK)浅析
    C#中Monitor对象与Lock关键字的区别分析
    lock,Monitor,Mutex的区别
    如何在windows7中使用“专用字符编辑器”中的字
    ppapi,npapi
    配置OpenLDAP,Java操作LDAP,DBC-LDAP进访问
    List of Mozilla-Based Applications
    TLS协议分析
    编译Chrome详细步骤
    黑客惯用软件
  • 原文地址:https://www.cnblogs.com/liubainian/p/12031799.html
Copyright © 2011-2022 走看看