牛吃草

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 441  Solved: 139

Description

农夫有一个长满草的(x0, y0)为圆心,r为半径的圆形牛栏,他要将一头牛栓在坐标(x1, y1)栏桩上,但只让牛吃到一半草,问栓牛鼻的绳子应为多长?

Input

输入一个T,表示T组测试数据
下面T行每行五个整数 x0, y0, x1, y1, r 所有数据的绝对值小于1e5

Output

每组测试数据输出绳子长度,保留4位小数

Sample Input

2
0 0 0 0 2
0 0 10 10 2

Sample Output

1.4142
14.1892
先计算公共面积,然后直接二分。
#include "cstdio"
#include "algorithm"
#include "cstring"
#include "cmath"
#define  inf 0x3f3f3f
using  namespace std;
);
double s0,s1,s2,s3,s4,d;
double  x0,x1,e,f,r;
int P(double l ){
    *d*r));
    *l*d));
    s0=r*r*a1+l*l*a2-d*r*sin(a1);//相交面积
    s4=pi*r*r/;
    if(s0>s4){
        ;
    }
    ;
}
int main(){
    int t;
    scanf("%d",&t);
    while (t--){
        scanf("%lf%lf%lf%lf%lf",&x0,&e,&x1,&f,&r);
        d=sqrt((x0-x1)*(x0-x1)+(e-f)*(e-f));
        -sqrt()/)){//判断内含情况
            printf()/);
            continue;
        }
        double R=sqrt(r*r+d*d);
        ;
        ;
        ;i<;i++){
            ){
                R=M;
            }
            else {
                L=M;
            }
            M=(L+R)/;
        }
        printf("%.4f\n",M);
    }
    ;
}

最新文章

  1. Oracle跟踪文件
  2. Python的垃圾回收机制
  3. JZ2440开发笔记(2)——minicom的安装和配置使用【转】
  4. Android中SharedPreferences使用方法介绍
  5. 关于mac地址的一点感想
  6. @postconstruct初始化的操作
  7. 基于 Nginx 的 HTTPS 性能优化
  8. p67交换幺环为整环的充要条件
  9. 设计模式学习心得&lt;汇总&gt;
  10. vue开发小结(下)
  11. Vs2017 控制台 中文输出是乱码的问题解决
  12. c# 运行大运算程序主窗体卡掉的解决
  13. PAT Waiting in Line[转载]
  14. Win7 默认.lnk打开方式全是别的程序 还原的办法
  15. P1169 [ZJOI2007]棋盘制作
  16. JavaScript 判断手机端访问并跳转 redirect mobile
  17. 在flask中使用jsonify和json.dumps的区别
  18. django 连接 oracle 问题
  19. Machine Learning - week 2 - Multivariate Linear Regression
  20. TODO 正则表达式

热门文章

  1. 关于python 函数参数
  2. DRBD(数据镜像)+hearbeat(自动切换)
  3. 【安卓手机通用】android adb shell 命令大全
  4. [Unity]Unity开发NGUI代码实现ScrollView(放大视图)
  5. C++数据结构之map----第一篇
  6. Reinstall the Arduino Pro Mini Bootloade ISP(转)
  7. PHP 判断几秒前,几分钟,几小时前
  8. FMDB的一些基本操作小结
  9. IOS数据库FMDB增、删、改、查的使用【原创】
  10. Xcode--Alcatraz来管理Xcode插件