[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 }