P5104 红包发红包

题意:

给定一个\(w\)元的红包,有\(n\)个人依次去抢红包,问第\(k\)个人抢到红包的期望是多少?

题解:

期望计算:\(P(X)=X1*f(X1)+...Xn*f(Xn)\),f(X)是每种价值的概率。第一个人的期望为\(w/2\),剩余价值为\(w/2\),那么第二个人的期望为\(w/4\),依次类推就可以了。

#include "bits/stdc++.h" 
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll ksm(ll a,ll b){ll ret=1; while(b){if(b&1)ret=ret*a%mod;a=a*a%mod;b>>=1;} return ret;}
ll w,k,n;
int main(){
	scanf("%lld %lld %lld",&w,&n,&k);
	printf("%lld",w%mod*ksm(ksm(2,n),mod-2)%mod);
}
posted @ 2021-02-15 11:00  喜欢李知恩IU  阅读(37)  评论(0)    收藏  举报