UVa 11609 组队(快速幂)

Posted 谦谦君子,陌上其华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 11609 组队(快速幂)相关的知识,希望对你有一定的参考价值。

https://vjudge.net/problem/UVA-11609

题意:

有n个人,选一个或多个人参加比赛,其中一名当队长,有多少种方案?如果参赛者完全相同,但队长不同,算作不同的方案。

 

思路:

之后就是快速幂处理。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<vector>
 6 #include<queue>
 7 #include<cmath>
 8 using namespace std;
 9 
10 typedef long long LL;
11 
12 const int MOD=1000000007;
13 
14 LL n;
15 
16 LL pow(LL n)
17 {
18     LL res=1,base=2;
19     while(n)
20     {
21         if(n&1)
22             res=(res*base)%MOD;
23         base=(base*base)%MOD;
24         n>>=1;
25     }
26     return res;
27 }
28 
29 
30 int main()
31 {
32     //freopen("D:\\\\input.txt","r",stdin);
33     int T;
34     scanf("%d",&T);
35     for(int kase=1;kase<=T;kase++)
36     {
37         scanf("%lld",&n);
38         LL ans = pow(n-1);
39         printf("Case #%d: %lld\\n",kase,(n*ans)%MOD);
40     }
41 }

 

以上是关于UVa 11609 组队(快速幂)的主要内容,如果未能解决你的问题,请参考以下文章

Teams UVA - 11609

Uva 11609 Teams (组合数学)

UVA10870—Recurrences(简单矩阵快速幂)

UVA 10870 - Recurrences 矩阵快速幂

UVa 11149 Power of Matrix (矩阵快速幂,倍增法或构造矩阵)

UVa 10870 & 矩阵快速幂