POJ1862-Stripies

来源:互联网 发布:python的列表推导式 编辑:程序博客网 时间:2024/06/16 10:33

这题是基本不等式啊,每次选取质量m最大的两个stripy进行碰撞结合,能够得到最小的质量。

所有只要维护一个优先队列就可以了。

#include <cstdio>#include <cmath>#include <queue>using namespace std;priority_queue<double> que;int main(){    int n;    scanf("%d", &n);        for (int i = 0; i < n; i++) {        double m;        scanf("%lf", &m);        que.push(m);    }        while (que.size() > 1) {        double m1 = que.top();        que.pop();        double m2 = que.top();        que.pop();        que.push(2 * sqrt(m1 * m2));    }        printf("%.3f\n", que.top());        return 0;}


0 0