51Nod1417 天堂里的游戏(解方程)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42391248/article/details/84852392

真的这道题我看不出来什么思路,看大佬的代码思路原来just解一个方程而已,有点无语。。。

样例的解释很关键
有题意可知,不管怎么出硬币,美女要想保证收益,则每次的收益期望是相同的,因此可以列出等式
设美女出正面的概率为p,则出反面的概率为(1-p),因此可以列出方程:
-a*p+(a+b)/2*(1-p)=-b*(1-p)+(a+b)/2*p;
解得p=(a+3b)/(4a+4b);
剩下的只需求分子分母的最大公约数即可。
(原文:https://blog.csdn.net/haut_ykc/article/details/52750969)

#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b)
{
	ll temp;
	if(a<b)
	temp=a,a=b,b=temp;
	if(b==0) return a;
	return gcd(b,a%b);
}
int main()
{
	ll n,m,i,j;
	int T;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%lld%lld",&n,&m);
		ll x=n+3*m;
		ll y=4*(n+m);
		ll ans=gcd(x,y);
		printf("%lld/%lld\n",x/ans,y/ans);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42391248/article/details/84852392