1 条题解
-
0
更好的阅读体验
考虑枚举每个孩子总共获得的钱数 。
根据题意知道,可以将 分成几天发放,可以看成把 分成若干部分,就变成了在 个空中放板子,每个空放或不放,共 个方案。
再加上每个孩子都不给零花钱的方案,答案就应该是:
$$\begin{aligned} &1+\sum_{i=1}^{\lfloor \frac{n}{2} \rfloor } 2^{i-1} \\ =&1+(2^{\lfloor \frac{n}{2} \rfloor}-1) \\ =&2^{\lfloor \frac{n}{2} \rfloor} \end{aligned}$$快速幂即可。
代码:
#include<bits/stdc++.h> using namespace std; #define int long long const int mod=1e9+7; int n; int qpow(int x,int y){ int res=1; while(y){ if(y&1) (res*=x)%=mod; (x*=x)%=mod,y>>=1; } return res; } signed main(){ cin>>n; cout<<qpow(2,n/2); return 0; }
- 1
信息
- ID
- 12640
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 28
- 已通过
- 14
- 上传者