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);
}
要拿牌啊

浙公网安备 33010602011771号