题目背景

本题由世界上最蒟蒻最辣鸡最撒比的SOL提供。

寂月城网站是完美信息教室的官网。地址:http://191.101.11.174/mgzd 。

题目描述

辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌!

今天他萌上了组合数。现在他很想知道simga(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)

题解:

二项式定理

洛谷P3414 SAC#1 - 组合数_数据

 

C(n,0)+C(n,1)+...C(n,n)=2^n (由(1+1)^n得

C(n,0)-C(n,1)+C(n,2)-C(n,3)...=0(由(1-1)^n得

所以本题答案为2^n/2

代码:

 

#include<iostream>
#include<cstdio>
#include<cstring>
#define mod 6662333
#define LL long long
using namespace std;
LL n;
LL ksm(LL x,LL y){
    LL ret=1;
    while(y){
        if(y&1)ret=ret*1LL*x%mod;
        x=x*1LL*x%mod;
        y>>=1;
    }
    return ret;
}
int main(){
    scanf("%lld",&n);
    printf("%lld\n",ksm(2,n-1)%mod);
    return 0;
}