随笔分类 - 错排
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2068这是一道错排题,不过有点变形,要把所以的你n/2的情况直接相加就可以了#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>__int64 mm(int x,int y){ __int64 sum=1; for(int i=x;i>=x-y+1;--i) sum*=i; for(int j=y;j>=2;--j) sum/=j; return sum;}
        阅读全文
            
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2049这是一道错排题,可是比赤裸裸的要多一点东西。因为m个人错排,可是不知道是哪m个错排,所以要用到高中排列组合,即调用函数的公式:代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>__int64 mm(int x,int y){ __int64 sum=1; for(int i=x;i>=x-y+1;--i) sum*=i; for(int j=y;j&
        阅读全文
            
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2048这是一道错排的变式,其实用错排(n!*(1/2!-1/3!+…..+(-1)^n/n!) )/全排(n!) 即是我们要求的百分率,如果要简单一点就可以直接用(1/2!-1/3!+…..+(-1)^n/n!),所以我们就可以很容易写出,还有精度问题,四舍五入,由于系统本身就是取的四舍五入,所以我们就可以不做处理了代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h&g
        阅读全文
            
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1465今天立神和我们讲了错排,才知道错排原来很简单,从第n个推起:当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;2,不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法; 综上得到 M(n)=
        阅读全文
            
                    
                
浙公网安备 33010602011771号