zoukankan      html  css  js  c++  java
  • hdu 2200 Eddy's AC难题

    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个元素就是1~n。设较小的集合内最大的数字为i,则小集合可以有2^(i-1)种取法。较大的集合则有2^(n-i)-1种取法。
    把i从1到n-1累加起来,得公式(n-2)*2^(n-1)+1。
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        __int64 n;
        while(scanf("%I64d",&n)!=EOF)
            printf("%I64d
    ",(n-2)*(__int64)(pow(2,n-1))+1);
        return 0;
    }
  • 相关阅读:
    快速排序
    fedora 配置
    while与do while
    switch选择结构
    if选择结构
    java有参
    java猜拳
    java类的无参方法
    java类与对象
    java数组
  • 原文地址:https://www.cnblogs.com/duan-to-success/p/3505755.html
Copyright © 2011-2022 走看看