日历
网志分类
· 所有网志
· ACM ICPC
· 随笔胡言
· 有关数学
· 算法学习
· 诗&歌&文
· 伪愤青
· 菜鸟做工程
· 更新通告
· 未分类
站内搜索
友情链接
· 管理我的Blog
· ==============
· SJTU dwyak - 文渊阁
· NJU phoenix - No motto
· NJU Phoenix - Illumination
· PKU frkstyc
· HIT wywcgs - wc的小屋
· NIT 小蓓 - 虎皮蛋糕
· HDU - 流浪的枫之羽
· ZJUT - zeism
· Fluke's Blog
· UESTC - Tom Riddle
· UESTC - zhucheng
· OIer winsty
· ZZU Cheapwine
· 小用的空间
· owen的文档集中营
· Fish过生活
· ECUST - CodeStar
· Wiskey's blog
· richardxx - Try Again
· Vivian's House
· Sicheng's Blog
· ==============
· BunnyQ EndTech
· wtommy的无悔青春
· zxj 桂花飘香的时候
· Washington 天空的城堡
· echo 寻找心灵的宁静
· pizza 天天快乐
· 牛牛小屋
· fanskyer's PureWater
· sdragons' space
· NightElf's space
· NeverStop's space
· cnhawk
· ==============
· 看雪论坛
· 老罗 天空之城的点滴回忆
· Monkeycz像人一样死去
· Cyclotron's Blog
· tsing's blog
· Hedgehog's Parchment
· The Life Of Sam & Yangyy
· 莫言无意 没有过往的将来
· Eric 涅磐·人生·路
· dazh 左手年华
· Bakey 灵魂深处
· keo 还好没有忘记
· 开心生活一角
· 听风竹轩
· ξNew York,New Yorkζ
· flykite's blog
· fickle的角落世界
· Taiyuan123's blog
· RoBa's Tech Blog
Online Judge
+ TOJ
+ ZOJ
+ POJ
+ UVA
+ URAL
+ SGU

订阅 RSS

0122716

歪酷博客

失去色彩的花丛

曾经沧海难为水, 除却巫山不是云. 取次花丛懒回顾, 不缘修道只缘君.


« 上一篇: 再来胡扯几句 下一篇: Ural 1124 Mosaic »
robby @ 2006-09-17 00:25

对大牛来说应该是个水题,然而对我这数学弱鸟就不同了,所以还是有必要记一下。顺便整理一下刚刚看的一些东东。

题目大意是,给定N个可区分的盒子,把A个红球和B个蓝球放到这些盒子里,问有多少种情况。同颜色的球不可区分,球可以不放进任何一个盒子。(1<=N<=20, 0<=A,B<=15) 比如有2个盒子,然后1个红球1个蓝球,那么答案是9。

首先容易发现,两种颜色之间是不会相互影响的。所以只要分别求出A个球和B个球有多少种放法,把结果相乘即可。球可以不放进任何一个盒子这一点比较讨厌,可以通过枚举的方法搞掉它。枚举0..A个球放入N个盒子各有多少种方法,然后把结果相加。

现在的问题剩下了:把a个不可区分的球放入N个可以区分的盒子,每个球必须放入某个盒子里,盒子可以为空。这里有一个很巧妙的转化我没有想到,然而据wtommy说是高中就讲过的-,-。首先如果盒子不能为空的话问题就简单了,可以想象成在排成一排的球中间放隔板,一共有a-1个位子,要放n-1个板,所以是C(a-1,n-1)。然而现在隔板中间可以没有球,转化一下,在每个盒子里面先加入一个球,于是就回到了前面的问题,所以结果是C(a+n-1,n-1) = C(a+n-1,a)。

上面的方法需要太多的技巧,下面说一下用生成函数的方法。

对于每个盒子,我们可以不放入球,放入1个,放入2个……于是得到 1+x+x^2+...

共有N个盒子,因此生成函数为

  (1+x+x^2+...)^n

= (1/(1-x))^n = (1+(-x))^(-n)

= sigma(C(-n,r) * (-x)^r)  (for all r >= 0) (二项式定理)

= sigma(C(n+r-1,r) * x^r) (for all r >= 0) (转化成一般的组合数形式)

于是可以直接得到x^a的系数C(n+a-1,a)即为所求。

这样求出来的式子并不简练,实际上把最后那个所有数的求和化简一下可以得到

  C(n-1,n-1) + C(n,n-1) + C(n+1,n-1) + ... + C(n+a-1,n-1)

= C(n-1,n) + C(n-1,n-1) + C(n,n-1) + C(n+1,n-1) + ... + C(n+a-1,n-1)

= C(n,n) + C(n,n-1) + C(n+1,n-1) + ... + C(n+a-1,n-1)

= C(n+1,n) + C(n+1,n-1) + ... + C(n+a-1,n-1)

= ...

= C(n+a,n)

于是最终答案为 C(N+A,N) * C(N+B,N)

ps. 这个最后形式实在是太简单了,以至于我总感觉有什么更巧妙的转化可以直接得到这个结果,还望路过的大牛赐教……




最新评论


frkstyc

2006-09-17 03:35 网址: http://frkstyc.blog.edu.cn

RoBa家有一窝蚂蚁。蚂蚁当中有一些蚂蚁头目。每天这些个头目都会根据自己要干的事情挑几个蚂蚁喽罗当跟班(具体是哪几个它们不care,因为所有喽罗看起来都一个模样,谁也分不清谁是谁)。当然里面也有突然自以为了不得了办事可一单挑的,一个跟班都不要。所有的头目&它们的跟班总是一起行动的。每次出动,这些蚂蚁不管大的小的,总是一只跟一只排成一队。头目之间顺序总是固定地按照辈分关系安排的。每个头目的跟班一只一只紧跟在它后面。在队伍的最前头,还有几只实习头目。虽然头衔上带“头目”两个字,他们说到底和那些纯粹的喽罗也没什么区别(转正了的头目的神气劲不是一两天就能学来的)。
RoBa对这个蚂蚁队伍很感兴趣。他仔细数了一下队伍里蚂蚁的数目,发现里面正好有N个蚂蚁头目,除掉它们之后,就剩下A个喽罗模样的家伙了。RoBa还发现,虽然每天的队伍总是固定的那N个头目另加A个实习头目或标准喽罗,队伍的排列总是不同的。当然,RoBa心里也明白,可能排列数总是有限的。他很想知道,这个“每天一出新花样”的事情到哪天是个头。

强……明白了……

评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定