• hdu 2068 RPG的错排


    Problem Description
    今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁。RPG给他机会让他猜猜,第一次猜:R是公主,P是草儿,G是月野兔;第二次猜:R是草儿,P是月野兔,G是公主;第三次猜:R是草儿,P是公主,G是月野兔;......可怜的野骆驼第六次终于把RPG分清楚了。由于RPG的带动,做ACM的女生越来越多,我们的野骆驼想都知道她们,可现在有N多人,他要猜的次数可就多了,为了不为难野骆驼,女生们只要求他答对一半或以上就算过关,请问有多少组答案能使他顺利过关。
     
    Input
    输入的数据里有多个case,每个case包括一个n,代表有几个女生,(n<=25), n = 0输入结束。
     
    Sample Input
    1
    2
    0
     
    Sample Output
    1
    1
     
    首先要写个组合函数 ,之后利用错排公式。。
    #include<stdio.h>
    __int64 pz(int a,int b)
    {
        __int64 t1=1,t2=1,i;
        for(i=a;i>=a-b+1;i--)
        t1*=i;
        for(i=1;i<=b;i++)
        t2*=i;
        return t1/t2;
    }
    int main()
    {
        int n,i;
        __int64 a[30]={0,0,1};
        for(i=3;i<30;i++)
        {
            a[i]=(i-1)*(a[i-1]+a[i-2]);
        }
        while(~scanf("%d",&n),n)
        {
            __int64 sum=0;
            for(i=2;i<=n/2;i++)
            {
                sum+=a[i]*pz(n,i);
            }
            if(n==1||n==2)
            printf("1
    ");
            else
            printf("%I64d
    ",sum+1);
        }
        return 0;
    }
  • 相关阅读:
    Qt之悬浮球菜单
    electron中使用win.hide()再使用win.show()会引起窗口闪烁问题
    centos开放防火墙
    centos 设置CDN
    drfsave()更新操作
    os库获取/设置/删除环境变量
    def待学习的功能
    shell命令操作(jenkins执行后判断shell执行的对与错)
    使用templates模版
    centos安装vue前端环境
  • 原文地址:https://www.cnblogs.com/wangmenghan/p/5098688.html
Copyright © 2020-2023  润新知