首页 > 代码库 > P3414 SAC#1 - 组合数

P3414 SAC#1 - 组合数

题目背景

本题由世界上最蒟蒻最辣鸡最撒比的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)

 

一开始傻乎乎的求组合数

后来才发现原来求一下2^n-1就好,,

注意要开long long

 

 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #define ll long long  6 using namespace std; 7 const int mod=6662333; 8 ll fastpow(ll m,ll p) 9 {10     ll ans=1;11     ll base=m%mod;12     while(p!=0)13     {14         if(p%2==1)15         ans=(ans*base)%mod;16         17         base=(base*base)%mod;18         p=p/2;19     }20     return ans;21 }22 int main()23 {24     ll n;25     cin>>n;26     cout<<(fastpow(2,n-1)%mod);27     return 0;28 }

 

 

P3414 SAC#1 - 组合数