zoukankan      html  css  js  c++  java
  • TCO14 Wildcard CountTables——斯特林反演

    不知道咕了多长时间的题。。。

    讲了3遍,还是自己搞懂了。。

    暂时没有找到题目链接

    题意:

    n×m的网格,每个格子填[1,x]的数,使得不存在两行两列同构。

    先保证一个,行相同。

    再容斥掉列。

    枚举至多可以分成k个等价类。S表示第二类斯特林数

    $ans=sum_{k=1}^{m}C(x^k,n) imes S(m,k) imes (-1)^{m-k}$

    为了使得每个方案,假设有t个实际列的等价类,使得被统计的$2^{m-k}$(就是每个相邻的列能否合并成一个等价类)配上系数,$sum_{i=0}^{m-t}C(m-t,i) imes (-1)^{m-t-i}=0$

    所以注意这里是$(-1)^{m-k}$


    upda:2019.7.8 

    上面除了题意都在fp

    感谢Vixbob提出写错了,发现是理解大错特错了

    令(n,m,x)(表示n行m列填[1,x]时候的问题)

    考虑定义g[m]表示(n,m,x)并且随意填且行相同,

    显然g[m]=C(x^m,n)*n!

    定义f[m]表示(n,m,x)的答案

    有$g[m]=sum_{i=1}^m S(m,i)f[i]$

    为什么统计了$S(m,i)$次?

    考虑钦定对应关系。每个$g[m]$划分出等价类之后,每个等价类按第一次出现顺序拼在一起,构成一个$f[i]$

    每个$f[i]$一定会被统计$S(m,i)$次

    然后斯特林反演即可

    保证行相等,

    列同构?等价类?

    考虑随便填包含了哪些真实的答案。发现就是斯特林数作为系数。

    列用斯特林反演。

    然后题目连接:https://vjudge.net/problem/TopCoder-13444

  • 相关阅读:
    简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法
    适配器模式(Adapter Pattern)
    什么样的登录框才算是优秀的?
    transient的作用及序列化
    MySQL索引实现原理
    concurrentHashMap原理分析和总结(JDK1.8)
    HashMap实现原理(JDK1.8)
    深入理解Java中的IO
    多线程系列
    多线程系列
  • 原文地址:https://www.cnblogs.com/Miracevin/p/11122254.html
Copyright © 2011-2022 走看看