牛吃草 数论
来源:互联网 发布:单片机处理at指令 编辑:程序博客网 时间:2024/04/30 14:50
4243: 牛吃草
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 306 Solved: 87
Description
农夫有一个长满草的(x0, y0)为圆心,r为半径的圆形牛栏,他要将一头牛栓在坐标(x1, y1)栏桩上,但只让牛吃到一半草,问栓牛鼻的绳子应为多长?
Input
输入一个T,表示T组测试数据
下面T行每行五个整数 x0, y0, x1, y1, r 所有数据的绝对值小于1e5
Output
每组测试数据输出绳子长度,保留4位小数
Sample Input
20 0 0 0 20 0 10 10 2
Sample Output
1.414214.1892
#include<cmath>#include<iostream>#include<cstring>#include<cstdio>using namespace std;const double eps=1e-8;const double pi=acos(-1.0);int dsgn(double x){return x<-eps?-1:x>eps;}double Area(double r,double R,double l){if(dsgn(l-r-R)>=0) return 0;else if(dsgn(l-fabs(r-R))<=0){if(r>R) r=R;return pi*r*r;}double a=acos((l*l+r*r-R*R)/(2*l*r));double b=acos((l*l+R*R-r*r)/(2*l*R));double s1=a*r*r,s2=b*R*R;double S1=r*r*sin(a)*cos(a),S2=R*R*sin(b)*cos(b);return s1+s2-S1-S2;}int main(){int t;cin>>t;while(t--){ double x0,x1,y0,y1,r; scanf("%lf%lf%lf%lf%lf",&x0,&y0,&x1,&y1,&r); x1-=x0,y1-=y0; double l=sqrt(x1*x1+y1*y1); double lt=0,rt=1e5; while(dsgn(rt-lt)>0){ double mid=(rt+lt)/2.0; if(dsgn(2.0*Area(r,mid,l)-pi*r*r)>=0) rt=mid; else lt=mid; } printf("%.4lf\n",rt);}return 0;}
- 牛吃草 数论
- 牛吃草问题
- 牛吃草问题
- 牛吃草问题
- 牛吃草问题
- 牛吃草(二分)
- zstuoj 4243 牛吃草
- zstuoj 4243 牛吃草
- 牛吃草问题 (牛顿问题)
- 牛吃草问题的实例
- zstu 4243 牛吃草(浮点数二分)
- 小学六年级奥数竞赛题:牛吃草问题
- [JZOJ5427]吃草
- zstu 4243牛吃草(2016年新生赛暨全国新生邀请赛)
- 老虎的吃草生活
- CSU 1089 羊吃草
- 羊羊吃草
- 【浙江理工大学2016年新生赛暨全国新生邀请赛】 F 牛吃草,ZSTUOJ4243 【计算几何+二分】
- Swift3 生成二维码
- 5-7 是否同一棵二叉搜索树 (25分)
- 浅析linkedHashMap双向链表与Lru算法的关系
- eclipse自动格式化代码
- 1613-3-傅溥衍 总结《2016年11月22日》【连续第五十三天总结】
- 牛吃草 数论
- postman接口测试
- 总结一下使用过的几类LCD屏特点
- 二、感知机--统计学习方法总结
- SLAMCN资料收藏转载
- emWin 2天速成实例教程004_软件定时器(Timer)和位图片动画
- Check the difficulty of problems poj 2151
- Spring Data MongoDB <mongo:mongo-client … />配置
- 康托展开、康托逆展开;nyoj139,143