zoukankan      html  css  js  c++  java
  • 洛谷P1595 信封问题

    P1595 信封问题

    最新讨论

    题目描述

    某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。

    输入输出格式

    输入格式:

    一个信封数n

    输出格式:

    一个整数,代表有多少种情况。

    输入输出样例

    输入样例#1:
    样例1:2
    
    样例2:3
    输出样例#1:
    样例1:1
    
    样例2:2

    题解:

    错位排列

    本题解用的是f(n)=(n-1)*(f(n-1)+f(n-2))

    这道题的另一个公式 ans=n!(1-1/1!+1/2!-1/3!+...+(-1)^n*(1/n!))

    AC代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    #define N 1010
    int n;
    long long dfs(int x){
        if(x==0) return 1;
        if(x==1) return 0;
        if(x==2) return 1;
        if(x==3) return 2;
        if(x==4) return 9;
        return (x-1)*(dfs(x-1)+dfs(x-2));
    }
    int main(){
        scanf("%d",&n);
        printf("%lld",dfs(n));
        return 0;
    }
  • 相关阅读:
    C语言二维数组
    Foxyproxy 火狐代理插件
    Midas Civil的钢束生成器
    foobar2000 – ELPlaylist
    Foobar2000-CUI 小结
    Foobar2000–panel stack splitter
    Foobar2000 使用说明
    foobar2000-new
    书匠
    图片转文字 ocr 汉王
  • 原文地址:https://www.cnblogs.com/shenben/p/5811819.html
Copyright © 2011-2022 走看看