码迷,mamicode.com
首页 > 其他好文 > 详细

HUD 1465 不容易系列之一

时间:2016-08-06 12:46:17      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

原题链接:点击此处

解题思路:

一道应该属于递推的题目。

就是N封信都装错信封了。。。

假设信封有7个吧:A~G

A

_ _ _ _ _ _ _ 

a

向A里装错有7-1种情况,先选一种放b

A

b _ _ _ _ _ _

开始放B的,B可以放a也可以放其他的,如果放a,则就是剩下n-2个的排列了,

如果放其他的假设放c那就是剩下n-1的排列

这样就可以总结出来规律:

f[n]= (n-1)*( f[n-1] + f[n-2])。

 

源代码:

技术分享
#include <iostream>
#include <stdio.h>
using namespace std;
long long a[21]={0,0,1,2};
int n;
int main()
{
    for(int i=3;i<=21;i++)
        a[i]=(i-1)*(a[i-1]+a[i-2]);
    while(cin>>n)
        cout<<a[n]<<endl;
    return 0;
}
View Code

 

HUD 1465 不容易系列之一

标签:

原文地址:http://www.cnblogs.com/gdvxfgv/p/5743620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!