题目背景
本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。
寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。
题目描述
辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!
今天他萌上了组合数。现在他很想知道sigma(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。
由于答案可能很大,请输出答案对6662333的余数。
输入格式
输入仅包含一个整数n。
输出格式
输出一个整数,即为答案。
输入输出样例
输入 #1
3
输出 #1
4
说明/提示
对于20%的数据,n <= 20;
对于50%的数据,n <= 1000;
对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)
题解:首先知道C(n,0)+C(n,1)+…+C(n,n-1)+C(n,n)之和为2^n,又因为题目只问C(n,0)+C(n,2)+…的偶数部分,组合数的数据大小是对称的,所以答案直接除2,答案也就是2 ^ (n-1),用快速幂求解。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=6662333;
ll qsm(ll a,ll b)
{
ll ans = 1,base = a;
while(b != 0)
{
if(b & 1)
{
ans *= base;
ans%=mod;
}
base *= base;
base%=mod;
b >>= 1;
// cout<<ans<<endl;
}
return ans;
}
int main()
{
ll n;
// freopen("data.txt","r",stdin);// 按顺序读入(仅此一行)
cin>>n;
cout<<qsm(2,n-1)<<endl;
}