zoukankan      html  css  js  c++  java
  • HDU中的递归

    //Made by syx
    //Time 2010年8月15日 09:01:57

    //1465 不容易系列之一
    //
    //

    总结:递推求解的基本方法:

    首先,确认:能否容易的得到简单情况的解?
    然后,假设:规模为N-1的情况已经得到解决。

    最后,重点分析:当规模扩大到N时,如何枚举出所有的情况,并且要确保对于每一种子情况都能用已经得到的数据解决。
    强调:
    1、编程中的空间换时间的思想
    2、并不一定只是从N-1到N的分析

    //1465 不容易系列之一

    //基本形式:d[1]=0;   d[2]=1
    //递归式:d[n]= (n-1)*( d[n-1] + d[n-2])
    //这就是著名的错排公式

    1、当N=1和2时,易得解~,假设F(N-1)和F(N-2)已经得到,重点分析下面的情况:
    2、当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装
    3、前者,对于每种错装,可从N-1封信中任意取一封和第N封错装,故=F(N-1)*(N-1)
    4、后者简单,只能是没装错的那封和第N封交换信封,没装错的那封可以是前面N-1封中的任意一个,故= F(N-2) * (N-1)

    #include <stdio.h>
    int main()
    {
    __int64 a[21] = {0,0,1};
    int i , n;
    for(i=3; i<21; i++)
    {
    a[i] = (i-1) * (a[i-1] + a[i-2]);
    }
    while(scanf("%d",&n) != EOF)
    {
    printf("%I64d\n",a[n]);
    }
    return 0;
    }



    作者:BuildNewApp
    出处:http://syxchina.cnblogs.comBuildNewApp.com
    本文版权归作者、博客园和百度空间共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则作者会诅咒你的。
    如果您阅读了我的文章并觉得有价值请点击此处,谢谢您的肯定1。
  • 相关阅读:
    判断一下是星期几
    猴子分桃
    免子生免子
    字符串排序
    非关系型数据库(一)
    学习redis简介(一)
    SAVEPOINT
    *****POSTGRESQL文檔
    程序员人生之路(分析的非常透彻!)
    UpperCase for ALL Text Editors
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197374.html
Copyright © 2011-2022 走看看