P3414 SAC#1 - 組合數

自為風月馬前卒發表於2017-05-06

題目背景

本題由世界上最蒟蒻最辣雞最撒比的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 }

 

 

相關文章