本文主要是介绍poj 1862 Stripies,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
优先队列的应用,主要是理解为什么每次要取最大的两个数,因为题目要求的是最后剩下来的那个变形虫的最小质量,所以我们要使质量大的变形虫尽量多的开平方。
#include<iostream>
#include<queue>
#include<math.h>
#include<iomanip>
int n,x;
using namespace std;
int main()
{
while(cin>>n)
{
priority_queue<double>q;
for(int i=0;i<n;i++)
{
cin>>x;
q.push(x);
}
for(int i=0;i<n-1;i++)
{
double a=q.top();
q.pop();
double b=q.top();
q.pop();
double c=2*sqrt(a*b);
q.push(c);
}
cout<<fixed<<setprecision(3)<<q.top()<<endl;
}
return 0;
}
这篇关于poj 1862 Stripies的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!