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 ...
随机推荐
- Linked List Cycle - LeetCode
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...
- HNOI 2006 BZOJ 1195 最短母串
题面 问题描述 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2,„,Sn)都是T的子串. 输入 第一行是一个正整数n(n<=12),表示给定的字 ...
- git——简易指南
Git对于我来说,只知道是一个版本控制器,类似于乌龟的svn.其中也仅仅会几个常的命令,比如说“更新git pull”.“提交git push”等等,因为记得当初使用的时候,师傅告诉我,对于你不懂这个 ...
- docker入门小结(二)
11,网络使用 sudo docker run -d -P training/webapp python app.py sudo docker ps -l 这样将主机一个端口映射到容器中,由于app. ...
- es6 - 模板
'use strict'; // es5 let name = 'mrs'; let qb = 20; function logs() { return 'goods!'; } let html = ...
- java查看工具jhat-windows
Analyzes the Java heap. This command is experimental and unsupported. Synopsis jhat [ options ] heap ...
- 手把手教你画AndroidK线分时图及指标
先废话一下:来到公司之前.项目是由外包公司做的,面试初,没有接触过分时图k线这块,认为好难,我能搞定不.可是一段时间之后,发现之前做的那是一片稀烂,可是这货是主功能啊.迟早的自己操刀,痛下决心,开搞, ...
- Shell脚本之:变量
与编译型语言不同,shell脚本是一种解释型语言. 执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code), ...
- [Flex][Adobe Flash Builder 4.6]谷歌浏览器(Chrome)下运行Flex程序的问题
今天刚开始学习Flex,发现用Chrome运行程序时会一片空白,上网查了相关资料后找到了解决方法: 打开Chrome,在地址栏输入:chrome://plugins/ 进入插件管理界面,查找Fla ...
- 算法 Heap sort
// ------------------------------------------------------------------------------------------------- ...