HDU1465

Problem Description:给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!

现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢?

HIT:

A B C D E F...

1 2 3 4 5 6

首先给出你最后的结果,就是一个调用函数递推的过程:f(n)=(n-1)x(f(n-1)+f(n-2))


那么为什么呢?Follow me you will know the answer.

1.A会装在除1以外的信封(因为是全部装错),所以假设A装在了4(随意是几,1除外)中。

2.那么D可以装的信封是除4之外的,既是有n-1种选择。

3.假如1:D装在1(从n-1个里选择第一个)中,此时信封和信的对应关系为:

B C E F

2 3 5 6


则仅剩下的刚好剩下n-2个信封,n-2个一一相对的信,就又相当于是求f(n-2)(既是n-2个信全装错的可能)。

假如2:在A装在了4之后,此时信封和信的对应关系为:

B C D E F...

2     3       1    5    6


D只能装在除1之外的信封,此时的所有条件和f(n)一样(一样的地方是BCDEF分别不能装在23156中,相当于此时不仅BCEF和2356一一对应,D和1也对应),所以此时剩下f(n-1)封信,就是f(n-1)种可能的情况。


所以最后,就是一个调用函数递推的过程:f(n)=(n-1)x(f(n-1)+f(n-2))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值