2018.09.28 牛客网contest/197/B面积并(二分+简单计算几何)
传送门
比赛的时候把题目看成求面积交了,一直没调出来。
下来发现是面积并气的吐血。
码了一波发现要开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面积并(二分+简单计算几何)的更多相关文章
- 2018.09.28 牛客网contest/197/C期望操作数(状态转移+前缀和递推)
传送门 比赛手动打了四项感觉有规律,调了40min+之后重新手算了后面几项发现只有前四项满足规律233. 首先这道题只跟q−xq-xq−x有关. 我们尝试找找递推关系. 我们令f[i]f[i]f[i] ...
- 2018.09.28 牛客网contest/197/A因子(唯一分解定理)
传送门 比赛的时候由于变量名打错了调了很久啊. 这道题显然是唯一分解定理的应用. 我们令P=a1p1∗a2p2∗...∗akpkP=a_1^{p_1}*a_2^{p_2}*...*a_k^{p_k}P ...
- 牛客网 Wannafly挑战赛 C 列一列 简单题 (题目有点坑)
链接:https://www.nowcoder.com/acm/contest/71/C来源:牛客网 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算 ...
- 2018牛客网暑期ACM多校训练营(第二场)I- car ( 思维)
2018牛客网暑期ACM多校训练营(第二场)I- car 链接:https://ac.nowcoder.com/acm/contest/140/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 ...
- 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...
- 牛客网 2018年东北农业大学春季校赛 I题 wyh的物品
链接:https://www.nowcoder.com/acm/contest/93/I 来源:牛客网 时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言5242 ...
- 2018年牛客网NOIP赛前训练营游记
2018年牛客网NOIP赛前训练营游记 提高组(第一场) 中位数 #include<cstdio> #include<cctype> #include<climits&g ...
- 牛客网国庆集训派对Day6 题目 2018年
链接:https://www.nowcoder.com/acm/contest/206/A来源:牛客网 Birthday 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576 ...
- 牛客网国庆集训派对Day5 题目 2018年
链接:https://www.nowcoder.com/acm/contest/205/L来源:牛客网参考博客:https://blog.csdn.net/HTallperson/article/de ...
随机推荐
- JAVA 整合 SSM (Spring + SpringMVC + MyBatis)
< 一 > POM 配置文件 ( 如果出现 JAR 包 引入错误, 请自行下载 ) <project xmlns="http://maven.apache.org/POM/ ...
- windows自带杀毒防火墙
windows自带杀毒防火墙 Windows Defender FireWall
- FindWindow 查找窗口
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As ...
- JAVA WEB开发中的会话跟踪
常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. Http协议是一种无状态的协议,一旦数据交换完毕,客 ...
- avalon做的抽奖效果
.sweepstake { color: orange; font-size: 24px; font-weight: bold; } 先来一个简单的 <style> .sweepstake ...
- Session保存数据
int nameid=dao.isLegalUser(name, password);/ /方法返回int数据 request.setAttribute("nam ...
- git 拉取某个分支到本地
git 拉取其实只需要 git fetch origin xxx. git pull origin xxx即可
- 3类与对象——重拾Java
面向对象编程的3个特性 1 封装性 面向对象编程核心思想之一就是将数据和对数据的操作封装在一起.通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念. 在实际生活中,我们每时每刻都在与 ...
- struts2 自带的 token防止表单重复提交拦截器
在struts2中,我们可以利用struts2自带的token拦截器轻松实现防止表单重复提交功能! 1. 在相应的action配置中增加: <interceptor-ref name=&quo ...
- MySQL中实现Oracle里面 rank()over ( PARTITION BY ORDER BY) 分类分组功能
各班级学生成绩测试表 select * from TMP_A; 实现目的: 按照班级分类后按照分数倒序排序 采用MySQL变量简单实现,SQL如下: SELECT a.stu_id,a.point, ...