zoukankan      html  css  js  c++  java
  • HDU Problem

    Key Set

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
    Total Submission(s): 1763    Accepted Submission(s): 928


    Problem Description
    soda has a set S with n integers {1,2,,n}. A set is called key set if the sum of integers in the set is an even number. He wants to know how many nonempty subsets of S are key set.
     

    Input
    There are multiple test cases. The first line of input contains an integer T (1T105), indicating the number of test cases. For each test case:

    The first line contains an integer n (1n109), the number of integers in the set.
     

    Output
    For each test case, output the number of key sets modulo 1000000007.
     

    Sample Input
    4 1 2 3 4
     

    Sample Output
    0 1 3 7
     
    对于一个有n的元素的集合,组成的非空子集有2^n - 1个,其中和为奇数的个数比和为偶数的个数多一个。注意利用快速幂函数,不要超过了long long。
    #include <stdio.h>
    __int64 pow(__int64 x, __int64 y) {
        __int64 res = 1;
        __int64 base = x;
        y -= 1;
        while (y) {
            if (y&1) res = base*res%1000000007;
            base = base*base%1000000007;
            y >>= 1;
        }
        return res;
    }
    int main() {
        int t;
        __int64 n;
        scanf("%d", &t);
        while (t--) {
            scanf("%I64d", &n);
            printf("%I64d
    ", pow(2, n) - 1);
        }
        return 0;
    }
    


  • 相关阅读:
    linux日志守护进程 syslog
    ORM(一)
    ajax
    python bbs项目代码分析
    jquery基础
    PHP根据概率产生随机数
    用PHP删除文件操作unlink
    实时显示剩余可以输入的文字数
    mysql分表方法实现
    php 输出昨天,今天,明天是星期几的方法
  • 原文地址:https://www.cnblogs.com/cniwoq/p/6770921.html
Copyright © 2011-2022 走看看