题目大意:科学家发现一种奇怪的玩意,他们有重量weight,如果他们碰在一起,总重变成2*sqrt(m1*m2)。要求出最终的重量的最小值。
题解:
按照二元二次方程,当俩书越接近,所求的值越小
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <math.h>
#include <queue>
#include <stdio.h>
#include <cstdio>
#include <string.h>
using namespace std;
bool cmp(double a,double b){
return a>b;
}
int main(){
int n;
cin>>n;
double num[105];
for(int i =0;i < n;i++){
cin>>num[i];
}
sort(num,num+n,cmp);
for(int i = 0;i<n-1;i++){
double newnum = 0;
newnum = 2*sqrt(num[i]*num[i+1]);
num[i+1] = newnum;
sort(num+i+1,num+n,cmp);
}
printf("%.3f\n",num[n-1]);
}