【AtCoder】(square869120Contest #3)E
来源:互联网 发布:java mail 附件 io 编辑:程序博客网 时间:2024/06/05 17:29
传送门:http://s8pc-3.contest.atcoder.jp/tasks/s8pc_3_e
感谢罗大神指点
三角形面积公式
用正弦定理换掉ab,得
那么变成统计角个数之类的,满足A+B+C=π
然后计数的时候可以不妨设A < B < C
二分面积枚举A二分B(明显A一定时,BC越接近,面积越大)
然后注意一下等腰和等边的计数即可
#include<cmath>#include<iomanip>#include<iostream>#define A(a,b) S[a]*S[b]*S[n-a-b]*2#define db long doubleusing namespace std;typedef long long ll;ll n,k,tot;int lim,l,r,mid;db S[200005],L,R,Mid,st;int main(){ cout<<setprecision(50); cin>>n>>k;lim=n/3;st=3.14159265358979/n; if (n%3==0 && n*(n-1)*(n-2)/6<k+n/3) { cout<<"1.29903810568"; return 0; } for (int i=1;i<=n;i++) S[i]=sin(i*st); for (L=0,R=1.29903810568,Mid=(L+R)/2;L+0.0000000000001<R;Mid=(L+R)/2,tot=0) { for (int i=1;i<=lim;i++) if (A(i,i)<Mid) { for (l=i,r=n-i>>1,mid=l+r+1>>1;l<r;mid=l+r+1>>1) (A(i,mid)<Mid)?l=mid:r=mid-1; tot+=(l+1-i<<1)-(i+l+l==n?(i==l?3:2):1); } if (k<=tot*n) R=Mid;else L=Mid; } cout<<L;}
0 0
- 【AtCoder】(square869120Contest #3)E
- atcoder square869120Contest #4 D
- square869120Contest #4 E
- 【AtCoder】(AtCoder Grand Contest 004)E
- AtCoder 077E gururu
- Atcoder ARC 077 E
- Atcoder 080 E
- Atcoder Grand Contest 011E
- Atcoder Grand Contest 013E
- AtCoder Regular Contest 077 E
- AtCoder Regular Contest 077 E
- AtCoder Regular Contest 075 E
- AtCoder Grand Contest 018 E
- AtCoder Regular Contest 079-E
- AtCoder 080E Young Maids
- AtCoder Regular Contest 080 E
- AtCoder Regular Contest 080 E
- AtCoder regular contest 081 E
- 数据库常用数据类型
- 微信小程序-初识小程序架构骨架
- 485 Max Consecutive Ones
- oj2839: 改错题B-迷宫的秘密机关
- 使用python查找目录下特定后缀名的文件
- 【AtCoder】(square869120Contest #3)E
- MFC设置静态文本框字体的大小
- Import Java Projects from other IDE into IntelliJ IDEA
- Python--刷csdn访问量
- 221. Maximal Square
- wpf 外部资源文件自动复制到输出目录
- 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
- 飞控
- [imooc]MyPink2048