zoukankan      html  css  js  c++  java
  • [AGC002 F]Leftmost Ball

    题意

    (1cdots N)的颜色球,每种有(K)个。将所有的(N imes K)球进行排列,同时将每种颜色的第一个凃成颜色(0)(没出现过),问有多少种可能的颜色序列。

    • (N,Kleq 2000)

    分析

    先考虑一种最暴力的做法,就是我们考虑一个dp,设(f_{i,2^S})表示前(i)个里面已经选了(S)这一个集合的球,那么就很容易进行进一步dp了。

    但是,这个复杂度显然是炸上天了,我们肯定可以用某种方法进行改进。这里性能的瓶颈在于我们如何考虑已经选了的颜色。我们可以发现,这里所有的颜色本质上没有区别,也就是说,你完全可以把某两个颜色代表的意义换过来。

    这样我们发现,我们完全可以利用一个序的关系。曾经就有一个题目,按照排序强行做操作从而很高效地解决了题目,这里也可以利用类似的思路。我们考虑,将颜色按照某种方式排序,然后我们可以设出(f_{i,j})表示前(i)个数里面已经用了(1cdots j)的颜色,我们考虑转移有两种,一种是前面(j)种颜色里面添加一种,一种是添加一种新的颜色。我们如果考虑强行让选的顺序是递增的,那么我们下一个选的颜色就只能是(j),也就是从(f_{i-1,j-1})转移。由此很容易写出转移方程:(f_{i,j}=j imes f_{i-1,j}+f_{i-1,j-1})。这个方程就很容易在( ext O(NK))的时间内做完。实际上我们再看一眼:这不就是个斯特林数的递推式嘛!那我们只要套上斯特林数( ext O(Klog N))就做完了……因为对于斯特林数我们存在一个公式:

    [S(n,m)=frac{1}{m!}sumlimits_{k=0}^m(-1)^{m-k}inom{m}{k}k^n ]

    这个公式套进去就做完了……

  • 相关阅读:
    Using the proxy page
    ArcGIS 帮助 10.1 几何服务
    【转】地图投影系列介绍(三)_ 地图投影
    最简单的闰年函数
    JSP的编码问题
    和苗波玩吉他英雄,还有诺拉斯战士
    倒底是用接口,还是继承类?
    收集的两个Winform三层结构的例子
    在vs.net 2005 中 像JBuilder,Eclipse那样格式化代码
    JSP比ASP好的几个地方
  • 原文地址:https://www.cnblogs.com/wendavid/p/9005254.html
Copyright © 2011-2022 走看看