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 }
作者:自为风月马前卒
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。