[Luogu 3414]SAC#1 - 组合数

Description

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

今天他萌上了组合数。现在他很想知道simga(C(n,i))是多少;其中C是组合数(即C(n,i)表示n个物品无顺序选取i个的方案数),i取从0到n所有偶数。

由于答案可能很大,请输出答案对6662333的余数。

Input

输入仅包含一个整数n。

Output

输出一个整数,即为答案。

Sample Input

3

Sample Output

4

Hint

对于20%的数据,n <= 20;

对于50%的数据,n <= 1000;

对于100%的数据,n <= 1 000 000 000 000 000 000 (10^18)

1、

 

2、

 

3、

 

证明:由
当$a = b = 1$时,代入二项式定理可证明$1$式;
当$a = -1$,$b = 1$时代入二项式定理可证明$2$式;代入$a = 1$,$b = -1$可得到另一个意义相同的式子;
$(1式+2式) \over 2$可证明$3$式。

 

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 typedef long long lol;
 7 lol n,Mod=6662333;
 8 lol qpow(lol x,lol y)
 9 {
10   lol res=1;
11   while (y)
12     {
13       if (y&1) res=res*x%Mod;
14       x=x*x%Mod;
15       y=y/2;
16     }
17   return res;
18 }
19 int main()
20 {
21   cin>>n;
22   printf("%lld\n",qpow(2,n-1));
23 }

 

posted @ 2017-10-16 22:21  Z-Y-Y-S  阅读(229)  评论(0编辑  收藏  举报