zoukankan      html  css  js  c++  java
  • 错排

    前言(可跳过)

    今天考试要用,而据说之前学过 完全没印象 ,特地前来补坑

    真是 KCUF

    正题

    对于 (cp(n)) ((cp=)错排())

    算了,还是叫它 (D(n))

    如果对于 (1)~(n) 的序列,第一位填了 (x(2le xle n))

    ① 第 (x) 位填了1,那么剩下的 (n-2) 位就又转换为了相同的问题,而且有 (n-1) 种情况( (x)(n-1) 种情况),所以这种情况总的就是 ((n-1) * D(n-2)) 如图:

    ② 第 (x) 位填的数字不是 (x) 也不是 (1)(否则就和上面重复了),那么我们现在就可以把 (1)(x) 看成一个数了,因为一个没有数字,一个没有位置,老惨了

    理解:就是现在的 (1) 不能填 (x) 的位置,其它的 (n-2) 个数字不能填它们对应的位置,所以就相当于 (1)(x) 了(每个数字都有且仅有一个位置不能填)

    剩下就是 (n-1) 个位置,第一个数 (x)(n-1) 种情况,所以这种情况总的就是 ((n-1) * D(n-1)),如图:

    ( herefore D(n) = (n-1) * left[D(n-1)+D(n-2) ight])

    特别的:

    (D(1) = 0)(1个数字,1个位置你怎么错排???)

    (D(0) = 1)(错排即任何数字都没有在相应的位置上,没有数字当然就是一种排法)

    结论

    (D(n) = (n-1) * left[D(n-1)+D(n-2) ight])

    (D(1) = 0)

    (D(0) = 1)

  • 相关阅读:
    poj3984 迷宫问题(简单搜索+记录路径)
    substr
    poj3087 Shuffle'm Up
    学生管理系统
    win10配置gcc编译环境
    poj3278 Catch That Cow
    将字符串str1复制为字符串str2的三种解决方法
    poj2251 Dungeon Master
    cf 410
    7.20 Codeforces Beta Round #8
  • 原文地址:https://www.cnblogs.com/PPLPPL/p/13395325.html
Copyright © 2011-2022 走看看