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 ...
随机推荐
- 北冥有 Data,其名为鲲,鲲之大,一个 MySQL 放不下!
千万量级的数据,用 MySQL 要怎么存? 初学者在看到这个问题的时候,可能首先想到的是 MySQL 一张表到底能存放多少条数据? 根据 MySQL 官方文档的介绍,MySQL 理论上限是 (232) ...
- (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (一)
一.Jenkins介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java ...
- webservice测试窗体只能用于来自本地计算机的请求
写在前面 在编写好webservice后,发布到iis服务器,你会发现会有这样的异常“测试窗体只能用于来自本地计算机的请求”. 解决方案 在web.config中添加以下代码即可解决问题 <we ...
- 怎样去主动拿一个锁并占有?synchronized关键字即可
怎样主动去拿一个?synchronized关键字即可 怎样去释放一个锁呢?要求锁对象主动释放,打乱占有当前锁的线程即可
- 【windows】windows系统下,在任务管理器的进程选项卡中查看PID/任务管理器怎么查看PID
PID,就是windows上的进程ID,是一个进程的唯一标识值. 那今天启动JDK跑起来一个项目之后,想要在任务管理器中查看这个JDK所在进程的PID但是看不到. 怎么解决? 1.我在任务管理器的服务 ...
- 使用ssh从外网访问内网
一.场景如下: 各个角色的对应关系如下: 角色 描述 APP 个人笔记本,属于内网IP sshd server 公网 VPS ( 映射端口: port 2222 ),拥有公网IP ssh client ...
- 【重点突破】——SVG技术动态随机绘制圆形
一.引言 在学习Canvas绘图技术时,做的是随机验证码的例子,在学习SVG绘图技术时,同样也有一个随机绘制的例子——动态随机绘制圆形.这个练习,即综合了多种SVG技术的知识点,又很具有艺术感,随机生 ...
- mysql使用mysqldump 与 mysqlimport进行数据库迁移
1.导入数据库 1)source source /home/platvt/product/pc2_create_tables.sql 2)mysqlimport 使用mysqlimport导入数据: ...
- 我的IT成长史,不以物喜,不以己悲
http://bbs.51cto.com/thread-1066048-1.html本人87年,出生在北方一座3线城市,从小学就喜欢计算机,带着鞋套去机房练习打英文字母:初中顺理成章的通过了计算机1级 ...
- 笔记本中LVDS屏与eDP屏的比较
LVDS,即Low Voltage Differential Signaling,是一种低压差分信号技术接口.它是美国NS公司(美国国家半导体公司)为克服以TTL电平方式传输宽带高码率数据时功耗大.E ...