题目来源:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=608
分析:
两个圆放到矩形的临界点图为:
其中a为长, b为宽, r1 > r2
红色三角形的三边长分别为:
x = a - (r1 +r2)
y = b - (r1 + r2)
z = r1 +r2
当 x ^ 2 + y ^ 2 >= z^2 时, 显然 矩形是可以放进去圆的。
代码如下:
int main() { double w, l , r1 ,r2 ; while( scanf("%lf%lf%lf%lf" , &w, &l ,&r1 ,&r2)!= EOF){ if(w > l) swap(w, l) ; if(r1 > r2) swap(r1 , r2) ; double r = r1 +r2 ; double d = (l -r)*(l -r) + (w -r)*(w -r) ; if( (w > 2*r2 ) && (d > r*r) ) puts("Yes"); else puts("No") ; } }
zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中,布布扣,bubuko.com
zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中
原文:http://www.cnblogs.com/zn505119020/p/3713727.html