HDU-2200Eddy's AC难题

来源:互联网 发布:js 判断子字符串 编辑:程序博客网 时间:2024/06/07 13:13

Eddy's AC难题

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Problem Description

Eddy是个ACMer,他不仅喜欢做ACM,而且对于Ranklist中每个人的ac数量也有一定的研究,他在无聊时经常在纸上把Ranklist上每个人的ac题目的数量摘录下来,然后从中选择一部分人(或者全部)按照ac的数量分成两组进行比较,他想使第一组中的最小ac数大于第二组中的最大ac数,但是这样的情况会有很多,聪明的你知道这样的情况有多少种吗?

特别说明:为了问题的简化,我们这里假设摘录下的人数为n人,而且每个人ac的数量不会相等,最后结果在64位整数范围内.

 

 

Input

输入包含多组数据,每组包含一个整数n,表示从Ranklist上摘录的总人数。

 

 

Output

对于每个实例,输出符合要求的总的方案数,每个输出占一行。

 

 

Sample Input

2

4

 

 

Sample Output

1

17

 

解题思路:相当于把n个不同的数先从小到大排序,然后按照这个顺序,从这个n个数中分别任取2~n个不同的数,即排列组合中的C(m,n)m在上(m2开始[因为最少需要取两个数]一直到n [全取完结束] )n在下,然后从取出的m个数中,取第一组数的方案为m-1,所以总方案数应该为:如图。

 

可能用到的公式:

 

 

 

 

 


#include <bits/stdc++.h>

using namespace std;

 

long long hanshu(long long m,long long n)

{

    long long ans=1,j;

    for(j=1;j<=m;j++)

    {

        ans=ans*(n-j+1)/j;

    }

    return ans;

}

int main()

{

    long long n,sum,i;

    while(scanf("%I64d",&n)!=EOF)

    {

        sum=0;

        for(i=2; i<=n; i++)

        {

            sum+=(i-1)*hanshu(i,n);

        }

        cout<<sum<<endl;

    }

    return 0;

}

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 dnf深渊宝珠出了怎么办 吞噬魔4个球吃了怎么办 dnf没有支援兵了怎么办 家里没通天然气怎么办 苹果6p16g不够用怎么办 魅蓝手机内存不够用怎么办 3dmax灯光全黑怎么办 高压15o低压1oo怎么办 源码一位乘法中c怎么办 怀孕搬了重东西怎么办 深蹲力量不涨怎么办 ps4连接显示器分辨率低怎么办 大疆失去链接后怎么办 脑袋被锤了几拳怎么办 华为手机变板砖怎么办 电脑网页打开很慢怎么办 网页加载速度太慢.怎么办 cad字显示不出来怎么办 dell笔记本打不开机怎么办 手机系统界面已停止运行怎么办 大石退出菊丸怎么办 word空白页面突然变大了怎么办 高速上车胎爆了怎么办 没有定速巡航跑长途怎么办 惠普笔记本驱动无法安装怎么办 狙击手遇到热追踪导弹怎么办 做完卷腹脖子疼怎么办 医疗设备销售遭遇瓶颈怎么办 给顾客加油加超了怎么办 卡密码输错两次怎么办 擤鼻涕耳朵会响怎么办 鼻子里有血丝是怎么办 怀孕8周上火了怎么办 鼻炎犯了鼻涕流不停怎么办 擤鼻涕眼睛肿了怎么办 感冒咳嗽鼻子不通气怎么办 宝宝感冒不会擤鼻涕怎么办 新生儿鼻腔里有鼻涕怎么办 宝宝鼻腔有鼻涕出不来怎么办 怀孕的人感冒了怎么办 孕37周感冒咳嗽怎么办