妹子
妹子
考虑到首先判断可以横平竖直的放进去的情况。
先让
否则,交换使得
如图所示。
然后我们设一个
先将左第二项移动到右边,然后再平方。
变形为一般式
利用公式法求解。
最终的答案为较小者。
注意较大者对应另一个方程,形如:
然后如果
#include<cstdio>
#include<algorithm>
#include<cmath>
#define db long double
using namespace std;
#define W(t) while(t--)
int n;
bool check(int a1,int b1,int a2,int b2){
db a=(db)b1*b1/a1/a1+1,b=-2.0*a2*b1/a1,c=a2*a2-a1*a1;
db delta=b*b-4*a*c;
if(delta>=0){
db x=(-b-sqrt(delta))/2/a;
db y=b1*sqrt(a1*a1-x*x)/a1;
return x+y-b2<=1e-6;
}
return 0;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
#endif
scanf("%d",&n);
W(n){
int a1,b1,a2,b2;
scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
if(a1>b1)swap(a1,b1);
if(a2>b2)swap(a2,b2);
if(a1>a2)swap(a1,a2),swap(b1,b2);
if(a1<=a2&&b1<=b2)puts("Yes");
else puts(check(a1,b1,a2,b2)?"Yes":"No");//a1<=a2,b1>=b2
}
return 0;
}
本文作者:wscqwq
本文链接:https://www.cnblogs.com/wscqwq/p/17633846.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步