BZOJ4920: [Lydsy1706月赛]薄饼切割
Description
Input
Output
Sample Input
3 2 -4 0 -4 -3
1 5 -4 -3 4 2
Sample Output
4.4352192982310
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define eps (1e-10)
#define PI (acos(-1))
using namespace std;
inline int read(){
int date=0,w=1;char c=0,last=0;
while(c<'0'||c>'9'){last=c;c=getchar();}
while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
if(last=='-')w=-1;
return date*w;
}
namespace __std{
double h,w,x1,y1,x2,y2;
inline double dis(double x,double y){return x*x+y*y;}
double solve(double r){
if(r*2<=h)return PI*r*r;
else if(r*r>dis(h/2.0,w/2.0))return h*w;
double t=sqrt(r*r-h*h/4.0)*h/4.0;
if(2*r<w){
double theta=PI/2.0-acos(h/r/2.0);
return 4.0*(t+r*r*theta/2.0);
}
else{
t+=sqrt(r*r-w*w/4.0)*w/4.0;
double theta=PI/2.0-acos(h/r/2.0)-acos(w/r/2.0);
return 4.0*(t+r*r*theta/2.0);
}
}
void work(){
double maxn,minn;
if(dis(x1,y1)-dis(x2,y2)<eps)maxn=sqrt(dis(x2,y2));
else maxn=sqrt(dis(x1,y1));
while(fabs(x1-x2)>eps||fabs(y1-y2)>eps){
double x3=(x2-x1)/3+x1,x4=(x2-x1)/3*2+x1;
double y3=(y2-y1)/3+y1,y4=(y2-y1)/3*2+y1;
if(dis(x3,y3)-dis(x4,y4)<eps){x2=x4;y2=y4;}
else{x1=x3,y1=y3;}
}
minn=sqrt(dis(x1,y1));
printf("%.10lf\n",solve(maxn)-solve(minn));
}
void init(){
h=read();w=read();x1=read();y1=read();x2=read();y2=read();
if(h>w)swap(h,w);
}
}
int main(){
int t=read();
while(t--){
__std::init();
__std::work();
}
return 0;
}
BZOJ4920: [Lydsy1706月赛]薄饼切割的更多相关文章
- [BZOJ4920][Lydsy六月月赛]薄饼切割
[BZOJ4920][Lydsy六月月赛]薄饼切割 试题描述 有一天,tangjz 送给了 quailty 一张薄饼,tangjz 将它放在了水平桌面上,从上面看下去,薄饼形成了一个 \(H \tim ...
- bzoj 4919 [Lydsy1706月赛]大根堆 set启发式合并+LIS
4919: [Lydsy1706月赛]大根堆 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 599 Solved: 260[Submit][Stat ...
- BZOJ4917: [Lydsy1706月赛]Hash Killer IV(模拟)
4917: [Lydsy1706月赛]Hash Killer IV Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 327 Solved: 140[Su ...
- [Lydsy1706月赛]大根堆
4919: [Lydsy1706月赛]大根堆 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 358 Solved: 150[Submit][Stat ...
- bzoj4919 [Lydsy1706月赛]大根堆
Description 给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点.每个点有一个权值v_i. 你需要将这棵树转化成一个大根堆.确切地说,你需要选择尽可能多的节点,满足大根堆的性质: ...
- [BZ4923][Lydsy1706月赛]K小值查询
K小值查询 题面 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值. 2 k,将所有严格大于k的数a_i减去k. Input ...
- BZOJ4921「Lydsy1706月赛」互质序列
吐槽一下BZOJ没有C++11 题还是不难的 BZOJ 4921 题意 在长度为$ n$的数列中去掉非空的连续一段并保证剩下数字不少于$ 2$ 求合法的所有方案中剩下数字的最大公约数的总和 $Sol ...
- 4923: [Lydsy1706月赛]K小值查询 平衡树 非旋转Treap
国际惯例的题面:这种维护排序序列,严格大于的进行操作的题都很套路......我们按照[0,k],(k,2k],(2k,inf)分类讨论一下就好.显然第一个区间的不会变化,第二个区间的会被平移进第一个区 ...
- BZOJ4923:[Lydsy1706月赛]K小值查询(Splay)
Description 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值. 2 k,将所有严格大于k的数a_i减去k. In ...
随机推荐
- HashMap之equals和hashCode小陷阱
先以一段代码开始这篇blog. 01 public class Name { 02 03 private String first; //first name 04 private Str ...
- 原生js获取元素的样式信息
工作中经常会需要获取DOM元素的样式,之前都是通过jquery的css()方法,现在总结一下通过原生js获取元素样式的方法. obj.style js var _width = obj.style.w ...
- Android 进度条对话框ProgressDialog
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- django发送邮件配置
配置如下,settings中配置: EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = '25' EMAIL_HOST_USER = 'contact108@163.co ...
- 修改linux iptable规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)-A INPUT -m state --sta ...
- 一张图,关于 Bayes error rate,贝叶斯错误率等的分析
造轮子是那帮搞研究的“科学家”干的事情(类似E&E里的explore),“工程师”的职责是利用已有的东西解决问题(类似E&E里的exploit). 其次,即使以工程师的角色解决业务问题 ...
- 【开发总结】—— BABYLON 项目开发必备系列
前言:在公司主要使用Babylon.js作为前端引擎,我自己在开发中总结到基本上每一个新项目都会需要这些基本设置. 一.ios兼容:解决镜面反射 如果不加offline,材质中有镜面反射,苹果手机 ...
- 如何查看在Heroku上部署了那些站点
使用以下命令查看 Heroku 站点地址: $ heroku domains 例如: http://peaceful-springs-94972.herokuapp.com/signu ...
- 从有序数组中查找某个值 low_bound
二分搜索 题意: 给定长度为n的单调不下降数列a0, ...an-1和一个数k,求满足ai>=k条件的最小的i. 不存在的情况下输出n. 输入: 5 3 2 3 3 5 6 输出: ...
- C#各种导入Excel文件的数据的方法总结
在导入前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码 protected void btnImport_Click(object sender, ...