hdu 5120(2014北京—求圆相交)
来源:互联网 发布:淘宝贷款关闭后果严重 编辑:程序博客网 时间:2024/06/04 00:58
题意:求环的相交面积
思路:
通过画图可知,面积= 大圆相交面积 - 大小圆相交面积*2 + 小小圆相交面积 再通过圆相交模板计算即可
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;typedef long long ll;#define PI 3.141592654double dis(double x1,double y1,double x2,double y2){ double x = (x1-x2)*(x1-x2); double y = (y1-y2)*(y1-y2); return sqrt(x + y);}double overload(int x1,int y1,int r1,int x2,int y2,int r2) //r1^2 - x^2 = r2^2 - (len-x)^2{ double len = dis(x1,y1,x2,y2); if (r1+r2<len + 1e-10) return 0; if (len<fabs(r1-r2+1e-10)) { double r=min(r1,r2); return PI*r*r; } double x=(len*len+r1*r1-r2*r2)/(2*len); double t1=acos(x/r1); double t2=acos((len-x)/r2); return r1*r1*t1+r2*r2*t2-len*r1*sin(t1);}int main(){ int T; int cas = 1; scanf("%d",&T); while(T--) { double x1,x2,y1,y2; double r,R; scanf("%lf%lf",&r,&R); scanf("%lf%lf",&x1,&y1); scanf("%lf%lf",&x2,&y2); double bb_area = overload(x1,y1,R,x2,y2,R); double bs_area = overload(x1,y1,R,x2,y2,r); double ss_area = overload(x1,y1,r,x2,y2,r); double ans = bb_area - bs_area*2 + ss_area; printf("Case #%d: %.6lf\n",cas++,ans); } return 0;}
0 0
- hdu 5120(2014北京—求圆相交)
- hdu 5120 Intersection(求相交圆的面积)
- hdu 5120 Intersection(求相交圆的面积)
- hdu 5120 Intersection(求相交环面积)
- hdu-5120(两圆相交面积)
- HDU 5130 Signal Interference 2014 ICPC 广州站现场赛(求多边形和圆相交的面积)
- HDU 1798 Tell me the area(计算几何,求相交圆面积)
- HDU 5130 Signal Interference (求圆与多边形相交面积 模板)
- hdu 5115(2014北京—dp)
- hdu 5122(2014北京—dp)
- 求相交圆面积
- hdu 5120 Intersection(两圆相交面积)(模板)
- hdu 5120(容斥+圆相交部分面积)
- 两圆相交求相交面积
- hdu 5120 圆相交面积+组合数学
- HDU-5120-Intersection【几何-相交圆面积】
- HDU 5120 Intersection 圆相交面积
- hdu 5120 Intersection (圆相交面积模板)
- linux c学习笔记----消息队列(ftok,msgget,msgsnd,msgrcv,msgctl)
- C/C++ 笔试、面试题目总结,
- POJ 1321 棋盘问题(搜索)
- DataSet和DataTable详解
- [iOS进阶]Socket 网络编程
- hdu 5120(2014北京—求圆相交)
- git动图快速制作方法
- C++深复制与浅复制(七)
- Android:Material Design(四) UI控件
- [Android通信]基于socket的聊天app(三):传输json数据
- html学习笔记
- React Native系列之-第一个app
- 黑马程序员——OC语言基础---@property关键字介绍及使用
- Struts2拦截器的使用 (详解)