LG5104 红包发红包 概率与期望
问题描述
题解
观察发现,对于 \(w\) ,期望得钱是 \(\frac{w}{2}\) 。
然后答案就是 \(\frac{w}{2^k}\) 。
然后快速幂求个逆元就好了。
\(\mathrm{Code}\)
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1000000007;
template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-'){
fh=-1;ch=getchar();
}
else fh=1;
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+ch-'0';
ch=getchar();
}
x*=fh;
}
int n,w,k;
int ksm(int x,int p){
int res=1;
while(p){
if(p&1) res=res*x%mod;
p>>=1;x=x*x%mod;
}
return res;
}
signed main(){
read(w);read(n);read(k);
printf("%lld\n",(w*(ksm(ksm(2,k)%mod,mod-2)%mod))%mod);
return 0;
}