Key Set 【hdu-5363】【快速幂】

xiaoxiao2021-02-28  109

Key Set

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 2244    Accepted Submission(s): 1172 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   题解:快速幂算法的应用;

代码如下:

#include<cstdio> #include<cmath> typedef long long ll; ll mod_pow(ll x,ll n,ll mod){ ll res=1; while(n>0){ if(n&1) res=res*x%mod; x=x*x%mod; n>>=1; } return res; } int main() { int t; scanf("%d",&t); while(t--){ ll n; scanf("%lld",&n); printf("%lld\n",mod_pow(2,n-1, 1000000007)-1); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-55929.html

最新回复(0)