NOIP 2007 普及组初赛试题 第21题

题目描述

(子集划分)将 n 个数 ( 1 , 2 , … , n ) (1,2,\dots,n) (1,2,,n) 划分成 r 个子集。每个数都恰好属于一个子集,任何两个不同的子集没有共同的数,也没有空集。将不同划分方法的总数记为 S ( n , r ) S(n,r) S(n,r)。例如, S ( 4 , 2 ) = 7 S(4,2)=7 S(4,2)=7,这 7 7 7种不同的划分方法依次为 { ( 1 ) , ( 234 ) } , { ( 2 ) , ( 134 ) } , { ( 3 ) , ( 124 ) } , { ( 4 ) , ( 123 ) } , { ( 12 ) , ( 34 ) } , { ( 13 ) , ( 24 ) } , { ( 14 ) , ( 23 ) } . \{(1),(234)\},\{(2),(134)\},\{(3),(124)\},\{(4),(123)\},\{(12),(34)\},\{(13),(24)\},\{(14),(23)\}. {(1),(234)},{(2),(134)},{(3),(124)},{(4),(123)}{(12),(34)},{(13),(24)},{(14),(23)}. n = 6 , r = 3 n=6,r=3 n=6,r=3 时, S ( 6 , 3 ) S(6,3) S(6,3)=______________。

(提示:先固定一个数,对于其余的 5 5 5 个数考虑 S ( 5 , 3 ) S(5,3) S(5,3) S ( 5 , 2 ) S(5,2) S(5,2),再分这两种情况对原固定的数进行分析。)

分析

根据题意我们不难得出: S ( x , r ) = S ( x − 1 , r − 1 ) ∗ 1 + S ( x − 1 , r ) ∗ r S(x,r)=S(x-1,r-1)*1+S(x-1,r)*r S(x,r)=S(x1,r1)1+S(x1,r)r, S ( x , x ) = 1 S(x,x)=1 S(x,x)=1, S ( x , 1 ) = 1 S(x,1)=1 S(x,1)=1
然后直接求就行了~
(注意:我们可以像写代码一样给自己加一个记忆化,不然会写很多很多)

答案与过程

S(6,3)=S(5,2)+S(5,3)*3

S(5,2):
{
	S(5,2)=S(4,1)+S(4,2)*2

	S(4,1):
	S(4,1)=1

	S(4,2):
	S(4,2)=S(3,1)+S(3,2)*2

	S(3,1):
	S(3,1)=1

	S(3,2):
	S(3,2)=S(2,1)+S(2,2)*2

	S(2,1):
	S(2,1)=1
	S(2,2):
	S(2,2)=1;
	
	∴
	S(3,2)=1+1*2=3
	S(4,2)=1+3*2=7
	S(5,2)=1+7*2=15
}

S(5,3):
{
	S(5,3)=S(4,2)+S(4,3)*3

	S(4,2)=7

	S(4,3):
	S(4,3)=S(3,2)+S(3,3)*3

	S(3,2)=3
	
	S(3,3):
	S(3,3)=1

	∴
	S(4,3)=3+1*3=6
	S(5,3)=7+6*3=25
}

∴
S(6,3)=15+25*3=90

本题答案:90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

harmis_yz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值