传送门

比赛的时候把题目看成求面积交了,一直没调出来。

下来发现是面积并气的吐血。

码了一波发现要开long double。

然而直接用现成的三角函数会挂。

因此需要自己手写二分求角度。


大致思路就是先判掉第二个圆不与多边形相交的情况。

然后如果相交这个图形是可以通过旋转2kπ/n2k\pi/n2kπ/n得到的,因此我们只用求出一个等腰三角形和一个扇形并起来就行了。

代码:

#include<bits/stdc++.h>
using namespace std;
long double l,r,n,pi=acos(-1.0);
int main(){
    cin>>n>>l>>r;
    long double a=2*pi/n;
    if(r>=l)return printf("%.2lf",(double)(pi*r*r)),0;
	long double tmp=sin(2*pi/n);
    long double tmp1=cos(pi/n)*l;
    if(l*cos(a/2)>=r)return printf("%.2lf",(double)(l*l*sin(a)/2*n)),0;
	long double L=0,R=a/2,mid;
	for(int i=1;i<=100;++i){
		mid=(L+R)/2;
		if(r*cos(mid)>=l*cos(a/2))L=mid;
		else R=mid;
	}
	long double ans=r*r*mid-r*r*sin(2*mid)/2;
	printf("%.2lf",(double)(l*l*sin(a)/2*n+ans*n));
    return 0;
}

2018.09.28 牛客网contest/197/B面积并(二分+简单计算几何)的更多相关文章

  1. 2018.09.28 牛客网contest/197/C期望操作数(状态转移+前缀和递推)

    传送门 比赛手动打了四项感觉有规律,调了40min+之后重新手算了后面几项发现只有前四项满足规律233. 首先这道题只跟q−xq-xq−x有关. 我们尝试找找递推关系. 我们令f[i]f[i]f[i] ...

  2. 2018.09.28 牛客网contest/197/A因子(唯一分解定理)

    传送门 比赛的时候由于变量名打错了调了很久啊. 这道题显然是唯一分解定理的应用. 我们令P=a1p1∗a2p2∗...∗akpkP=a_1^{p_1}*a_2^{p_2}*...*a_k^{p_k}P ...

  3. 牛客网 Wannafly挑战赛 C 列一列 简单题 (题目有点坑)

    链接:https://www.nowcoder.com/acm/contest/71/C来源:牛客网 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算 ...

  4. 2018牛客网暑期ACM多校训练营(第二场)I- car ( 思维)

    2018牛客网暑期ACM多校训练营(第二场)I- car 链接:https://ac.nowcoder.com/acm/contest/140/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 ...

  5. 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅

    链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...

  6. 牛客网 2018年东北农业大学春季校赛 I题 wyh的物品

    链接:https://www.nowcoder.com/acm/contest/93/I 来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言5242 ...

  7. 2018年牛客网NOIP赛前训练营游记

    2018年牛客网NOIP赛前训练营游记 提高组(第一场) 中位数 #include<cstdio> #include<cctype> #include<climits&g ...

  8. 牛客网国庆集训派对Day6 题目 2018年

    链接:https://www.nowcoder.com/acm/contest/206/A来源:牛客网 Birthday 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576 ...

  9. 牛客网国庆集训派对Day5 题目 2018年

    链接:https://www.nowcoder.com/acm/contest/205/L来源:牛客网参考博客:https://blog.csdn.net/HTallperson/article/de ...

随机推荐

  1. AS3 歌词同步

    这里实例素材: 我们不一样.lrc 我们不一样.mp3 歌词同步其实就是靠lrc文本文件,打开它,可以看到时间点和对应的歌词. 打开lrc内容如下: [ti:我们不一样][ar:大壮][al:][by ...

  2. Tomcat 多项目管理

    有时我们会在一个服务下存在多个项目的情况,为了统一管理和服务运行安全考虑,有时候我们需要重新部署一个项目但又不能停掉其它项目,就可以用manager进行管理. Tomcat manager和Root访 ...

  3. 跨越数据库操作时注意要加dbo

    跨越数据库操作时注意要加dbo insert into hrdb.dbo.TB_B_PROJECTS  :这样是正确的 insert into hrdb.TB_B_PROJECTS  :这样是错误的

  4. Functional Java 学习笔记

    Functional Java Functional Java是一个在Java语言中实现函数型编程范式的类库. 从接口上看,该类库似乎与Haskell语言关系密切,接口的方法名很多来自该语言. < ...

  5. CentOS开机卡在进度条,无法正常开机的排查办法

    CentOS开机的时候卡在进度条一直进不去 重启,按f5键进度条/命令行界面方式切换,确认卡问题后处理就好 我这边卡在redis服务,设置为开机启动但是一直服务启动不起来 重启按住"e&qu ...

  6. 尴尬!Jsp内置对象

    今天挺尴尬的,上网络安全课做错了ppt ,尴尬到头皮发麻. JSP内置对象 JSP内置对象是Web容器创建的一组对象,不使用new关就可以使用的内置对象. <%int[ ]value= {60, ...

  7. 基元线程同步构造 AutoResetEvent和ManualResetEvent 线程同步

    在.Net多线程编程中,AutoResetEvent和ManualResetEvent这两个类经常用到, 他们的用法很类似,但也有区别.ManualResetEvent和AutoResetEvent都 ...

  8. oracle 字符处理

    oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算stri ...

  9. linux下set命令的参数及用法

    linux  set 命令 功能说明:设置shell. 语 法:set [+-abCdefhHklmnpPtuvx] 补充说明:用set 命令可以设置各种shell选项或者列 出shell变量.单个选 ...

  10. C函数指针的用法

    1.最简单的用法: #include <cstdio> int (*p)(int);//定义一个函数指针变量p(下面的f其实是一个常量函数指针) int f(int x) { printf ...