首页 > 代码库 > zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中
zoj 1608 Two Circles and a Rectangle 判断两个圆是否能放入一个矩形中
题目来源:
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") ; } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。