添加好友(快速幂 金马五校赛-上海大学)
添加好友
发布时间: 2017年7月8日 21:10 最后更新: 2017年7月8日 22:32 时间限制: 1000ms 内存限制: 128M
<label class="problem-label" style="display:inline-block;font-weight:700;font-size:16px;">描述</label>
Tony最近喜欢上了龙之谷游戏,所以他想叫上他的好友组建一个公会来一起享受这款游戏。
Tony一共有n个好友,他可以叫上任意k(1<=k<=n)个好友来组建公会,并且所有好友都会答应他的请求。问Tony一共可以有多少种方案组建这个公会?
只要不是完全相同的人组建的方案视为不同方案,并且Tony至少要叫上一个人。
<label class="problem-label" style="display:inline-block;font-weight:700;font-size:16px;">输入</label>
多组输入,每组一行,输入一个正整数n(1<=n<=1000000000)。
<label class="problem-label" style="display:inline-block;font-weight:700;font-size:16px;">输出</label>
每组输出一行,输出方案数。(对1000000007取膜)
<label class="problem-label" style="display:inline-block;font-weight:700;font-size:16px;">样例输入1</label> 复制
2
<label class="problem-label" style="display:inline-block;font-weight:700;font-size:16px;">样例输出1</label>
3
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
using namespace std;
long long quickmod(long long a,long long b,long long m)
{
long long ans = 1;
while(b)
{
if(b&1)
{
ans = (ans*a)%m;
b--;
}
b/=2;
a = a*a%m;
}
return ans;
}
int main(){
int n;
while(~scanf("%d",&n)){
long long res = quickmod(2,n,1000000007);
res--;
cout<<res<<endl;
}
return 0;
}