这个题真的好几天想了好几天,主要是公式没看懂。
a/b是划分的那个区域,然后为什么是划分的区域呢?我一开始想如果接近那个落点的话,a/b可以特别的小,然后这个公式就不科学了。后来我想明白了,因为她让求最小值,所以当他特别小的时候,那个x值就改变了,所以说,这个划分区域还是很靠谱的,昨天家里WiFi掉了,真操蛋。当然还有更操蛋的事情。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
int a , b , t;
double x;
scanf("%d %d",&a , &b);
if(b > a){
printf("-1\n");
return 0;
}
t = a / b;
if(t & 1) t++;
x = (double)(a + b)/t;
printf("%.12lf",x);
}