codeforces 185B Mushroom Scientists【不等式的應用】

題目分析

xaybzc=aabbcc(xa)a(yb)b(zc)cx^a*y^b*z^c =a^a*b^b*c^c*(\frac{x}{a})^a *(\frac{y}{b})^b*(\frac{z}{c})^c
aabbcc(axa+bxb+cxca+b+c)(a+b+c)\le a^a*b^b*c^c*(\frac{a*\frac{x}{a}+b*\frac{x}{b}+c*\frac{x}{c}}{a+b+c})^{(a+b+c)}

當且僅當 xa=yb=zc\frac{x}{a} =\frac{y}{b}=\frac{z}{c} 時成立。

x=aSa+b+cx=\frac{aS}{a+b+c}
y=bSa+b+cy=\frac{bS}{a+b+c}
z=cSa+b+cz=\frac{cS}{a+b+c}

本題注意 a,b,c都爲0的情況,以及精度問題

代碼詳解

#include <bits/stdc++.h>
using namespace std;

int main()
{
	long long s;
	cin>>s;
	long long  a,b,c;
	cin>>a>>b>>c;
	if(a==0&&b==0&&c==0)
	{
		cout<<0<<" "<<0<<" "<<0<<endl;
		return 0;
	}
	long long sum = a+b+c;
	double  x = (a*s*1.0)/(sum*1.0);
	double  y = (b*s*1.0)/(sum*1.0);
	double  z = (c*s*1.0)/(sum*1.0);
	printf("%.10f %.10f %.10f\n",x,y,z);
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章