2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Coin

题意:

抛掷一枚硬币,正面朝上的概率是p/q (p/q <=0.5),抛掷k次,偶数次朝上的概率是X/Y,求\frac{q}{p}(\frac{q}{p} \le \frac{1}{2})X/Ymod(1e9+7)








思路:

这是一个二项分布,高中数学题

2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Coin_第1张图片


#include
#define ll long long
#define N 1000000007
using namespace std;
const long long C=500000004;
ll pp(ll a,ll b)
{
	ll ans=1;
	while(b)
	{
		if(b&1) ans=(ans*a)%N;
	    a=(a*a)%N;
	    b>>=1;
	}
	return ans;
}
int main()
{
	ll p,q,k;
	ll ans=0;
	ll t;
	ll A;
	cin>>t;
	while(t--)
	{scanf("%lld%lld%lld",&p,&q,&k);
	
		q=p-2*q;
		A=__gcd(q,p);
		q/=A;
		p/=A;
		q=(pp(q,k)*C)%N;
		p=pp(p,k*(N-2));
		ans=((q*p)%N+C%N) %N;
		printf("%lld\n",(ans%N+N)%N);	
	}
    return 0;
}


你可能感兴趣的:(区域赛,数学,几何,积分,乘法逆元)