【JZOJ4742】【NOIP2016提高A组模拟9.2】单峰
2016-09-03 08:31
411 查看
题目描述
输入
输出
样例输入
2样例输出
2数据范围
解法
答案为2^(n-1),快速幂即可。证明:显然峰值必定为n,那么对于其他n-1个数,要么放在峰值的左边,要么放在峰值的右边,所以方案数为2^(n-1)。
代码
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define ll long long #define sqr(x) ((x)*(x)) #define ln(x,y) int(log(x)/log(y)) using namespace std; const char* fin="aP1.in"; const char* fout="aP1.out"; const int inf=0x7fffffff; const int mo=1000000007; ll n; ll ans; ll qpower(ll a,ll b){ ll c=1; while (b){ if (b&1) c=(c*a)%mo; a=(a*a)%mo; b>>=1; } return c; } int main(){ scanf("%lld",&n); ans=qpower(2,n-1); printf("%lld",ans); return 0; }
启发
提交时要保证每个变量不会超出int。相关文章推荐
- 单峰【NOIP2016提高A组模拟9.2】
- 【NOIP2016提高A组模拟9.2】单峰
- 【JZOJ4743】【NOIP2016提高A组模拟9.2】积木
- JZOJ4744. 【NOIP2016提高A组模拟9.2】同余 一类比较好的分类思想+根号算法
- 【JZOJ4744】【NOIP2016提高A组模拟9.2】同余
- 【NOIP2016提高A组模拟9.2】同余
- JZOJ 4711. 【NOIP2016提高A组模拟8.17】Binary
- [JZOJ 4714]【NOIP2016提高A组模拟8.19】公约数
- JZOJ 4819 【NOIP2016提高A组模拟10.15】算循环
- 【NOIP2016提高组模拟】单峰
- 【JZOJ4715】【NOIP2016提高A组模拟8.19】树上路径
- JZOJ 4715 【NOIP2016提高A组模拟8.19】树上路径
- 【JZOJ4783】【NOIP2016提高A组模拟9.15】Osu
- 【JZOJ4819】【NOIP2016提高A组模拟10.15】算循环
- JZOJ4726【NOIP2016提高A组模拟8.22】种花 增加改错机制的后贪心
- JZOJ 4821 【NOIP2016提高A组模拟10.15】打膈膜
- {题解}[jzoj4787]【NOIP2016提高A组模拟9.17】数格子
- 【JZOJ4782】【NOIP2016提高A组模拟9.15】Math
- 【JZOJ4784】【NOIP2016提高A组模拟9.15】Map
- JZOJ 4786. 【NOIP2016提高A组模拟9.17】小a的强迫症