1. 程式人生 > >牛客網 牛客小白月賽8 C-神祕鑰匙

牛客網 牛客小白月賽8 C-神祕鑰匙

玄學之門

題目:

傳送門

分析:

數論題,沒什麼可以多說,直接證明:
1.=i=1niCni1.方案數=\sum_{i=1}^ni*C_n^i
2.=i=1nin!i!(ni)!2.=\sum_{i=1}^ni*\frac{n!}{i!(n-i)!}
3.=i=1nn!(i1)!(ni)!3.=\sum_{i=1}^n\frac{n!}{(i-1)!(n-i)!}
4.=i=0n1(n1)!i!(n1i)!4.=\sum_{i=0}^{n-1}\frac{(n-1)!}{i!(n-1-i)!}


5.=i=0n1Cn1i5.=\sum_{i=0}^{n-1}C_{n-1}^i
6.=2n16.=2^{n-1}
證畢.

程式碼:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<set>
#include<queue>
#include<vector> #include<map> #include<list> #include<ctime> #include<iomanip> #include<string> #include<bitset> #include<deque> #include<set> #define XJQ 1000000007 #define LL long long using namespace std; inline LL read() { LL d=0,f=1;char s=getchar
(); while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();} while(s>='0'&&s<='9'){d=d*10+s-'0';s=getchar();} return d*f; } LL n=read(); LL king(LL w) { LL x=1,a=2; while(w) { if(w&1) x=x*a%XJQ; a=a*a%XJQ; w>>=1; } return x; } int main() { printf("%lld",king(n-1)*n%XJQ); return 0; }