【gmoj】【快速幂】单峰
题目
解题思路
找呀找规律
可以枚举n放在第几位
ta前面的数组合数即为将n放在这一位的方案
式子长这样
长得跟杨辉三角一模一样
n特别的大
只能用快速幂求
代码
#include<iostream>
#include<cstdio>
using namespace std;
const long long mo=1000000007;
long long n;
long long ksm(long long n)
{
long long w=2,ans=1;
while (n)
{
if (n&1) ans=ans*w%mo;
w=w*w%mo;
n/=2;
}
return ans;
}
int main()
{
scanf("%lld",&n);
printf("%lld",ksm(n-1)); //减一是因为求的是n前面的数的组合
return 0;
}