题目大意:
解题思路:
可以发现,峰顶一定是 n,因此考虑 1 ∼ n − 1 1 ∼ n − 1 1∼n−1 分别放在 n 的左边还是右边,所以得出相应的唯一答案。所以答案就是 2 n − 1 2^{n−1} 2n−1。然后快速幂求答案就好了
A c c e p t e d c o d e : Accepted\ code: Accepted code:
#include<cstdio>
using namespace std;
const long long ymw = 1e9 + 7;
long long n;
long long ksm(long long x, long long m) {
long long ans = 1;
while (m) {
if (m & 1) (ans*=x) %= ymw;
(x*=x) %= ymw;
m >>= 1;
}
return ans;
}
int main() {
scanf("%lld", &n);
printf("%lld",ksm(2, n-1) % ymw);
}