题解(完整版)
2024-07-04 13:11:37
发布于:广东
17阅读
0回复
0点赞
首先,当,即无论怎么移周长都一样的知道怎么做吗?
那当然是作正方形啊!
那么,其他的,如Testcase_1呢?
移动时周长会改变,怎么办呢?
有了!我们可以复制两份,再拼到一起!
这样大长方形的周长不管怎么移都不会变了
我们再作正方形就能求出长方形的最大面积了
同理所有长方形的最大面积就可以算了
设当S面积最大时,长方形右边的x坐标值为x
则
.
#include <iostream>
#include <cstdio>
#include <vector>
#include <memory.h>
using namespace std;
double solve(){
double n, m;
scanf("%lf%lf", &n, &m);
if(n >= 0) return -1;//k大于0面积就是无穷大
return -m * m / 4 / n;//返回最大面积
}
int main(){
int t;
scanf("%d", &t);
while(t--){
double x = solve();
if(x == -1) printf("-1\n");
else printf("%.4lf\n", x);
}
}
单个测试点时间复杂度:
这里空空如也
有帮助,赞一个