题解 | #Villages: Landlines#

Villages: Landlines

https://ac.nowcoder.com/acm/contest/33186/A

D-Mocha and Railgun

题意:给定一原点为(0,0)的圆,其中有一点Q,以点Q为中心的宽度为2d矩形自由旋转,与圆相交的一侧的最大弧 代码:

思路: altaltalt

过原点O作两平行线垂线,垂点分别为C,D,设一侧与圆交点分别为A,B 所求弧对应圆心角a=∠AOD-∠BOD; 令OC=x,则OD=2d+x,则有a=acos(x/r)-acos((x+2d)/r); 求导知其导数恒大于0,则x最大时,a最大 接下来是求x的最大值 alt 如图,Q到线段的距离为d,O到线段的距离为X,OQ固定为L; 当两垂点不重合时,X+d<L(直角边小于斜边) X<L-d; 重合时 易得X=L-d为最大值 将X=L-d代入a关于X的表达式,得到对应圆心角 再乘以半径得到对应的最大弧长

using namespace std;
const double PI=acos(-1.0);
int main()
{
    int tt;cin>>tt;
    while(tt--)
    {
        double r,x,y,d;cin>>r>>x>>y>>d;
        double l=sqrt(x*x+y*y);
        double a=acos((l-d)/r),b=acos((l+d)/r);
        double ans=r*(a-b);
        printf("%.8f\n",ans);
    }
    return 0;
}
全部评论

相关推荐

08-05 14:06
门头沟学院 Java
驼瑞驰_招募评论官版...:哈哈哈,hr怪实诚的
点赞 评论 收藏
分享
程序员牛肉:1.大头肯定是院校问题,这个没啥说的。 2.虽然有实习,但是实习的内容太水了,在公司待了七个月的时间,看起来就只做了jwt和接入redis。爬取新闻,数据导入。这几个需求值得你做七个月吗?这不就是三四个月的工作量吗?我要是面试官的话真心会认为你能力不太行。所以既然有实习了,一定要好好写,像是Swagger这种东西是真没必要写上去,就拉一个包的事情。 3.我个人觉得话,在校生不要把自己当社招看,除非你的项目是特别牛逼,特别有名的含金量,否则不要写这种密密麻麻的一串子工作职责。你的项目只有一个作用,就是供面试官从中来抽取八股对你进行拷打。 但是你现在这个看不来什么技术点,可以改一下,详细表述一下你用什么技术实现了什么功能,在实现这个功能的过程中,你解决了什么难题。
点赞 评论 收藏
分享
评论
12
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务