bzoj 4885: [Lydsy2017年5月月赛]长方体
Description
Input
Output
#include<bits/stdc++.h>
typedef double ld;
ld ans=;
void maxs(ld&a,ld b){if(a<b)a=b;}
const ld _0=1e-;
int T,n;
ld xm,ym,x[],y[],r[];
ld dis2(ld x,ld y){return x*x+y*y;}
ld dis(ld x,ld y){return sqrt(x*x+y*y);}
bool out(int w){
return x[w]+r[w]<||x[w]-r[w]>xm||y[w]+r[w]<||y[w]-r[w]>ym;
}
bool in(int w){
ld r2=r[w]*r[w];
return dis2(x[w],y[w])<r2&&dis2(x[w]-xm,y[w])<r2&&
dis2(x[w],y[w]-ym)<r2&&dis2(x[w]-xm,y[w]-ym)<r2;
}
struct ev{
ld x;
int a;
bool operator<(ev w)const{return x<w.x;}
}es[];
const ld pi=acos(-),_2pi=pi*;
ld fix(ld x){
while(x<)x+=_2pi;
while(x>=_2pi)x-=_2pi;
return x;
}
int s,ep;
void cal(ld a,ld b){
ld l=fix(a-b),r=fix(a+b);
if(l>r)++s;
es[ep++]=(ev){l-_0,};
es[ep++]=(ev){r+_0,-};
}
void f(ld a,ld b,ld c){
xm=a,ym=b;
x[]=-c,y[]=;
x[]=,y[]=-c;
x[]=a+c,y[]=-a;
x[]=-b,y[]=b+c;
ld L=,R=a+b+c,M;
while(R-L>1e-){
M=(L+R)/;
for(int i=;i<;++i)r[i]=M;
bool ed=,ed0=;
for(int i=;i<;++i){
if(out(i))continue;
ed0=;
if(in(i))break;
s=,ep=;
for(int j=;j<;++j)if(j!=i){
ld xd=x[j]-x[i],yd=y[j]-y[i];
ld d=dis(xd,yd);
if(r[j]+r[i]<d+_0)continue;
ld a=atan2(yd,xd),b=acos(d/(*r[i]));
cal(a,b);
}
if(x[i]-r[i]<)cal(pi,acos(x[i]/r[i]));
if(x[i]+r[i]>xm)cal(,acos((xm-x[i])/r[i]));
if(y[i]-r[i]<)cal(pi*1.5,acos(y[i]/r[i]));
if(y[i]+r[i]>ym)cal(pi*0.5,acos((ym-y[i])/r[i]));
if(!ep){ed=;goto o;}
std::sort(es,es+ep);
for(int j=;j<ep;++j)if(!(s+=es[j].a)){ed=;goto o;}
oo:;
}
if(!ed0)ed=;
o:;
if(ed)R=M;
else L=M;
}
maxs(ans,L);
}
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
f(a,b,c);f(b,c,a);f(c,a,b);
printf("%.10f",ans);
return ;
}
bzoj 4885: [Lydsy2017年5月月赛]长方体的更多相关文章
- bzoj 4836: [Lydsy2017年4月月赛]二元运算 -- 分治+FFT
4836: [Lydsy2017年4月月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MB Description 定义二元运算 opt 满足 现在给定一 ...
- BZOJ 4881: [Lydsy2017年5月月赛]线段游戏
4881: [Lydsy2017年5月月赛]线段游戏 Time Limit: 3 Sec Memory Limit: 256 MBSubmit: 164 Solved: 81[Submit][St ...
- BZOJ 4883 [Lydsy2017年5月月赛]棋盘上的守卫(最小生成环套树森林)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4883 [题目大意] 在一个n*m的棋盘上要放置若干个守卫. 对于n行来说,每行必须恰好 ...
- BZOJ 4884 [Lydsy2017年5月月赛]太空猫(单调DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4884 [题目大意] 太空猫(SpaceCat)是一款画面精致.玩法有趣的休闲游戏, 你 ...
- 【BZOJ 4832 】 4832: [Lydsy2017年4月月赛]抵制克苏恩 (期望DP)
4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 275 Solved: 87 Descripti ...
- [补档][Lydsy2017年4月月赛]抵制克苏恩
[Lydsy2017年4月月赛]抵制克苏恩 题目 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平. 如果你不玩炉石传说,不必担心,小Q同学会告诉你所有相关的细节.炉石传说是这样的一 ...
- 【BZOJ4832】[Lydsy2017年4月月赛]抵制克苏恩 概率与期望
[BZOJ4832][Lydsy2017年4月月赛]抵制克苏恩 Description 小Q同学现在沉迷炉石传说不能自拔.他发现一张名为克苏恩的牌很不公平.如果你不玩炉石传说,不必担心,小Q同学会告诉 ...
- 【BZOJ4883】[Lydsy2017年5月月赛]棋盘上的守卫 KM算法
[BZOJ4883][Lydsy2017年5月月赛]棋盘上的守卫 Description 在一个n*m的棋盘上要放置若干个守卫.对于n行来说,每行必须恰好放置一个横向守卫:同理对于m列来说,每列 必须 ...
- [Bzoj4832][Lydsy2017年4月月赛]抵制克苏恩 (期望dp)
4832: [Lydsy2017年4月月赛]抵制克苏恩 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 673 Solved: 261[Submit][ ...
随机推荐
- POJ 3660 Cow ContestCow(Floyd传递闭包)题解
题意:给出m个关系,问你能确定机头牛的排名 思路:要确定排名那必须要把他和其他n-1头牛比过才行,所以Floyd传递闭包,如果赢的+输的有n-1就能确定排名. 代码: #include<cstd ...
- python swap
swap里面的a,b 不会影响函数作用域外面的变量 java也不可以的吧:python里面没有指针,你可以认为所有的东西都是指向的内容,但是不要试图去改变指针的值 其实我觉得所有的对象都是不可变对象, ...
- Maximum Depth of Binary Tree,求树的最大深度
算法分析:求树的最小最大深度时候,都有两种方法,第一种是递归思想.树最大最小深度,即为它的子树的最大最小深度+1,是动态规划的思想.还有一种方法是层序遍历树,只不过求最小深度时,找到第一个叶子节点就可 ...
- vs_u8前缀
1.ZC: 个人测试下来,VS2015开始 支持 u8前缀. 2.What's New for Visual C++ in Visual Studio 2015 https://msdn.micros ...
- subllime的插件使用
1.emmet快速使用的方法. html:xt 然后按下tab快速的生成一个html文档. 生成10个div----- div*10 div->ul->li->a->img 写 ...
- 这些HTML、CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置、设置背景、数据列表)
系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...
- Android之微信开放平台创建应用
微信开放平台网站:https://open.weixin.qq.com 1:登录之后(未登录就注册),点击移动应用开发进入 点击创建应用之后,进入填写对应信息. 接下来,填写平台信息. 应用签名获取方 ...
- 去掉Firefox的标题栏
Linux Mint里,火狐的标题栏很不美观,不过火狐可是出名的的“可定制”,Hide Caption扩展拖拖地满足你的要求,简直不能再好! 献上链接: https://addons.mozilla. ...
- Linux下启动关闭weblogic
1. 启动主控域(必须永远先启动主控域) 首先,weblogic的启动脚本和关闭脚本都在域目录的bin文件夹下,所以,先cd到该目录 cd /home/weblogic/Oracle/Middlewa ...
- Beta阶段第2周/共2周 Scrum立会报告+燃尽图 14
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411] 版本控制:https://git.coding.net/liuyy08 ...