Problem Description
大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!
做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。
话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的。比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情。如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部做错,一个不对。

不幸的是,这种小概率事件又发生了,而且就在我们身边:
事情是这样的——HDU有个网名叫做8006的男性同学,结交网友无数,最近该同学玩起了浪漫,同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!

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

Input
输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1<n<=20),n表示8006的网友的人数。
Output
对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。
Sample Input
2 3
Sample Output
1 2
题意:给出一个不大于20的数,求其错排组合数
思路:错排递推公式为f(n) = (n-1) * (f(n - 1) + f(n -2)),其中n>=3,f(1) = 0,f(2)=1
代码如下
import java.io.FileInputStream;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;public class Main implements Runnable
{  private static final boolean DEBUG = false;private Scanner cin;private PrintWriter cout;private static final int N = 21;private static final long[] f = new long[N];private int n;private void init(){try {if (DEBUG) {cin = new Scanner(new InputStreamReader(new FileInputStream("f:\\OJ\\uva_in.txt")));} else {cin = new Scanner(new InputStreamReader(System.in));}cout = new PrintWriter(new OutputStreamWriter(System.out));f[0] = 0;f[1] = 0;f[2] = 1;for (int i = 3; i < N; i++) {f[i] = (i - 1) * (f[i - 1] + f[i - 2]);}} catch (Exception e) {e.printStackTrace();}  }private boolean input(){if (!cin.hasNextInt()) return false;n = cin.nextInt();return true;}private void solve(){cout.println(f[n]);cout.flush();}@Overridepublic void run(){init();while (input()) {solve();}}public static void main(String[] args) {// TODO code application logic herenew Thread(new Main()).start();}
}

hdu1465 不容易系列之一(错排问题)相关推荐

  1. HDOJ 1465 不容易系列之一 【错排公式 递推】

    HDOJ 1465 不容易系列之一 [错排公式 递推] 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1465 题目就是说n个信封全部装错信的可能性是多 ...

  2. HDU:4535 吉哥系列故事——礼尚往来(数学:错排)

    吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  3. c语言错排公式编程,不容易系列2-题解(C++代码)【递归算法 错排公式秒杀】

    #浅谈错排公式 ## 错排公式定义 一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法.假如在进行排列时,原来所有的元素都不在原来的位置,那么称这个排列为错排.而错排数所指的就是在一段有n ...

  4. HDU - 2049 不容易系列之(4)——考新郎(错排问题+组合数学)

    题目链接:点击查看 题目大意:有n对新婚夫妇,有m个新郎找错了新娘,问发生这种情况的可能 题目分析:匹配错误问题可以类比于全错排问题,这里插眼放一个讲的不错的博客: https://blog.csdn ...

  5. HDU 2049 不容易系列之(4)——考新郎( 错排 )

    链接:传送门 思路:错排水题,从N个人中选出M个人进行错排,即 C(n,m)*d[m] 补充:组合数C(n,m)能用double计算吗?第二部分有解释 Part 1. 分别求出来组合数的分子和分母然后 ...

  6. 【HDU - 1465 】不容易系列之一 (组合数学,错排)

    题干: 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!  做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样 ...

  7. HDU - 1465 不容易系列之一 【错排】

    Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱 ...

  8. 错排、卡特兰数、斯特林数小结

    一. 错排 1.计算公式: 1) D[n] = (n-1)*(D[n-1]+D[n-2]) ,n>=2, D[0] = 1, D[1] = 0 . 解释:对于第n个要加入错排的数,它可以和已经错 ...

  9. HDU1465 不容易系列之一【递推】

    不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

最新文章

  1. 【网址收藏】PowerShell因为在此系统中禁止执行脚本的解决方法
  2. 希尔伯特曲线的绘制c语言,用四叉树和希尔伯特曲线做空间索引
  3. JavaScript、HTML、CSS学习—思维导图
  4. 软件测试行业有哪些细分方向,软件测试人员有哪些职业发展方向?
  5. 深度学习(part1)--机器学习及深度学习基础
  6. 【模拟】聊天服务器的外部流量
  7. 2.4 1死锁的概念(1)
  8. Redis是单线程为什么还那么快?
  9. PostgreSQL的 create index concurrently
  10. 开课吧python小课学了有用吗-考研人注意了,停下手头的活,再忙也要看一下这个!...
  11. MODIS三种常见数据辐射定标处理
  12. layerdate一款很好用日期插件
  13. excel数据库_EXCEL数据库DSUM DMAX DMIN DAVERAGE函数的用法
  14. mybatis3-中文文档
  15. 模板引擎template.js
  16. FPGA零基础学习:UART协议驱动设计
  17. VMware虚拟机 网桥模式详细配置(及计算机网络基本知识 IP/子网掩码/网关/DNS)
  18. python文件seek函数,Python 文件操作seek()函数
  19. 连续英文字符串分词工具wordninja添加自定义名词
  20. 使用云祺虚拟机备份软件恢复SANFOR HCI虚拟机

热门文章

  1. python英文单词及其出现次数-Python读取英文文件并记录每个单词出现次数后降序输出示例...
  2. python话雷达图-Python 详解雷达图/蛛网图
  3. python第三方库有哪些常用的、请列举15个-python基础面试常见题
  4. 基于python的数据挖掘网课-利用 Python 练习数据挖掘
  5. 计算机编程语言python-初学者最容易学的六种编程语言
  6. python语言编程环境-day02--编程语言的分类与Python开发环境的搭建
  7. php和python区别-PHP与Python语言有哪些区别之处?选择哪一个好?
  8. 自学python爬虫要多久-Python爬虫要学多久,给初学编程者的建议
  9. python画曲线-python绘制动态曲线教程
  10. python画饼图-从零开始学Python可视化(五): 饼图及环形图