zoukankan      html  css  js  c++  java
  • 杭电1465--不容易系列之一

    不容易系列之一

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 16634    Accepted Submission(s): 6928


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

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

    现在的问题是:请大家帮可怜的8006同学计算一下,一共有多少种可能的错误方式呢?
     
    Input
    输入数据包含多个多个测试实例,每个测试实例占用一行,每行包含一个正整数n(1<n<=20),n表示8006的网友的人数。
     
    Output
    对于每行输入请输出可能的错误方式的数量,每个实例的输出占用一行。
     
    Sample Input
    2 3
     
    Sample Output
    1 2
     
    Author
    lcy
     
    Source
     

    //错排+预处理;

    此题用到的公式是:f(n)=(n-1)*(f(n-1)+f(n-2));

    其递推公式是:f(n)=n!(1-1/1!+1/2!-1/3!+1/4!+....................+(-1)^n*1/n!);

     1 #include<stdio.h>
     2 long long sieve[25];
     3 int main()
     4 {
     5     int i,n;
     6     sieve[1]=0; sieve[2]=1;
     7     for(i=3;i<21;i++)
     8     sieve[i]=(i-1)*(sieve[i-1]+sieve[i-2]);
     9     while(~scanf("%d",&n))
    10     {
    11         printf("%lld
    ",sieve[n]);
    12     } 
    13     return 0;
    14 } 
     
  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    基于分布式锁解决定时任务重复问题
    基于Redis的Setnx实现分布式锁
    基于数据库悲观锁的分布式锁
    使用锁解决电商中的超卖
  • 原文地址:https://www.cnblogs.com/soTired/p/4575941.html
Copyright © 2011-2022 走看看