9 POJ 1862 Stripies 简单贪心
发布时间:2020-12-13 20:44:52 所属栏目:PHP教程 来源:网络整理
导读:视察发现m1m2变成2*sqrt( m 1 * m 2 )质量是能够减少的, 因此按质量从大到小排序,每次取最大质量的两个合并,减少的质量是最多的。 合并n⑴次,终究得到的1个数就是结果。 这里用优先队列写的比较方便。 #includecstdio#includequeue#includecmathusing na
视察发现m1+m2变成2*sqrt(m1*m2)质量是能够减少的, 因此按质量从大到小排序,每次取最大质量的两个合并,减少的质量是最多的。 合并n⑴次,终究得到的1个数就是结果。 这里用优先队列写的比较方便。
#include<cstdio>
#include<queue>
#include<cmath>
using namespace std;
priority_queue<double> q;
int main()
{
int n,i;
double x,a,b;
while(~scanf("%d",&n))
{
while(!q.empty()) q.pop();
for(i=0;i<n;i++)
{
scanf("%lf",&x);
q.push(x);
}
for(i=0;i<n⑴;i++)
{
a=q.top();q.pop();
b=q.top();q.pop();
q.push(2*sqrt(a*b));
}
printf("%.3lf
",q.top());
}
return 0;
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |