「HDU6158」 The Designer(圆的反演)
2017-08-19 21:10
344 查看
题目链接多校8-1009 HDU - 6158 The Designer
(圆的反演就是半径为R,圆心O的圆为反演中心,点P的反演点就是在射线OP上满足\(|OP’|*|OP|=R^2\)的点P‘)
设切点为O,以O为圆心半径R的圆为反演点。将圆R1和R2反演得到两条直线,和两条直线相切的圆反演回去的圆就是1~n号圆的圆心。
那么它们的直径就是这些小圆的圆心和O的连线与小圆的交点反演回去的点的距离差。
再扔一次画图工具Desmos
比赛的时候想到这里就以为复杂度太高,不知道怎么预处理。其实到后面圆面积会收敛得很快。精度只要1e-5,就可以及时break掉。
题意
T(<=1200)组,如图在半径R1、R2相内切的圆的差集位置依次绘制1,2,3,到n号圆,求面积之和(n<=1e7)。题解
圆的反演:(圆的反演就是半径为R,圆心O的圆为反演中心,点P的反演点就是在射线OP上满足\(|OP’|*|OP|=R^2\)的点P‘)
设切点为O,以O为圆心半径R的圆为反演点。将圆R1和R2反演得到两条直线,和两条直线相切的圆反演回去的圆就是1~n号圆的圆心。
那么它们的直径就是这些小圆的圆心和O的连线与小圆的交点反演回去的点的距离差。
再扔一次画图工具Desmos
比赛的时候想到这里就以为复杂度太高,不知道怎么预处理。其实到后面圆面积会收敛得很快。精度只要1e-5,就可以及时break掉。
代码
#include <bits/stdc++.h> using namespace std; const double pi = acos(-1); const double R = 1; int t,r1,r2,n; double r0,d,a,b,r,s; double ans; int main() { scanf("%d",&t); while(t--){ scanf("%d%d%d",&r1,&r2,&n); if(r2<r1)swap(r1,r2); d=R*(r1+r2)/r2/r1/4; r0=d-R/2/r1; r=r2-r1; ans=pi*r*r; for(int i=1;i<=n/2;++i){ a=sqrt(d*d+i*r0*i*r0*4)-r0,b=a+r0*2; r=(R/a-R/b)/2; s=pi*r*r; ans+=s; if(i*2<n)ans+=s; if(s*(n-i*2)<1e-6){ break; } } printf("%.5f\n",ans); } return 0; }
相关文章推荐
- hdu 6158 The Designer( 反演圆)
- 《game design workshop》阅读笔记(一)——Game Design Basics——The Role of the Game Designer
- Changes to the Design View in SharePoint Designer 2013
- SharePoint designer 2010编辑List的表单时出现错误:soap:Server was unable to process request. ---> Value does not fall within the expected range
- You possibly will not often be capable of find the money for Obtain Diesel engine Designer watches
- Qt5:"Designer: An error has occurred while reading the UI file at line 1, column 0: Premature end of document."错误
- Announcing the availability of the March 2006 CTP of Expression Interactive Designer
- SharePoint Designer Can not perform this operation.The file is no longer checked out or has been del
- Constructing Filter Strings for the Table Designer
- Use Microsoft SharePoint Designer 2010 to customize the list view 3---Parameter and Filter
- Developer to Designer: GUI Design for the Busy Developer
- powerpowerdesigner 生成sql文件提示Generation aborted due to errors detected during the verification of the
- 打开PowerDesigner/PDM文件时出现"cannot load the dbms"错误
- 总结:SharePoint 2010 -- Error and Solution(1)-- SharePoint Designer – Value does not fall within the expected range
- Your build host version of Xamarin.IOS (release NO.)is too recent to work with the IOS designer
- 2017 CCPC网络赛 1009 The Designer(未完待续)
- Using the string repalce action in SharePoint workflow designer to send mail from mail template
- PowerDesigner Unable to list the users 解决办法
- HDU 6158 The Designer【计算几何+笛卡尔定理+韦达定理】
- 解决SharePoint 2013 designer workflow 在发布的报错“负载平衡没有设置”The workflow files were saved but cannot be run.