1502: [NOI2005]月下柠檬树 - BZOJ
Description

Input
文件的第1行包含一个整数n和一个实数alpha,表示柠檬树的层数和月亮的光线与地面夹角(单位为弧度)。第2行包含n+1个实数h0,h1,h2,…,hn,表示树离地的高度和每层的高度。第3行包含n个实数r1,r2,…,rn,表示柠檬树每层下底面的圆的半径。上述输入文件中的数据,同一行相邻的两个数之间用一个空格分隔。输入的所有实数的小数点后可能包含1至10位有效数字。
Output
输出1个实数,表示树影的面积。四舍五入保留两位小数。
Sample Input
2 0.7853981633
10.0 10.00 10.00
4.00 5.00
Sample Output
171.97
HINT
1≤n≤500,0.3
存个simpson模板
uses math;
const
maxn=;
eps=1e-7;
var
x,rr,fx1,fy1,fx2,fy2,k:array[..maxn]of double;
n:longint;
a,l,r,m,fl,fr,fm:double; function simpson(l,r,fl,fr,fm:double):double;
begin
exit((r-l)/*(fl+fr+*fm));
end; function f(a:double):double;
var
i:longint;
begin
f:=;
for i:= to n do
begin
if abs(a-x[i])<rr[i] then f:=max(f,sqrt(sqr(rr[i])-sqr(a-x[i])));
if (a>fx1[i]) and (a<fx2[i]) then f:=max(f,fy1[i]+(a-fx1[i])*k[i]);
end;
end; function area(l,m,r,fl,fm,fr,pre:double):double;
var
ll,rr,fll,frr,ls,rs:double;
begin
ll:=(l+m)/;rr:=(m+r)/;fll:=f(ll);frr:=f(rr);
ls:=simpson(l,m,fl,fm,fll);rs:=simpson(m,r,fm,fr,frr);
if abs(ls+rs-pre)<eps then exit(pre);
exit(area(l,ll,m,fl,fll,fm,ls)+area(m,rr,r,fm,frr,fr,rs));
end; procedure main;
var
i:longint;
begin
read(n,a);a:=/tan(a);
for i:= to n+ do read(x[i]);
for i:= to n+ do x[i]:=x[i]+x[i-];
for i:= to n+ do x[i]:=x[i]*a;
for i:= to n do read(rr[i]);
r:=x[n+];l:=x[n+];
for i:= to n do
begin
if x[i]-rr[i]<l then l:=x[i]-rr[i];
if x[i]+rr[i]>r then r:=x[i]+rr[i];
end;
for i:= to n do
if (x[i]-rr[i]<x[i+]-rr[i+]) and (x[i]+rr[i]<x[i+]+rr[i+]) then
begin
fx1[i]:=x[i]+rr[i]*(rr[i]-rr[i+])/(x[i+]-x[i]);fy1[i]:=sqrt(sqr(rr[i])-sqr(fx1[i]-x[i]));
fx2[i]:=x[i+]+rr[i+]*(rr[i]-rr[i+])/(x[i+]-x[i]);fy2[i]:=sqrt(sqr(rr[i+])-sqr(fx2[i]-x[i+]));
if abs(fx2[i]-fx1[i])>eps then k[i]:=(fy2[i]-fy1[i])/(fx2[i]-fx1[i]);
end;
m:=(l+r)/;fl:=f(l);fr:=f(r);fm:=f(m);
writeln(*area(l,m,r,fl,fm,fr,simpson(l,r,fl,fr,fm))::);
end; begin
main;
end.
1502: [NOI2005]月下柠檬树 - BZOJ的更多相关文章
- BZOJ 1502: [NOI2005]月下柠檬树 [辛普森积分 解析几何 圆]
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1070 Solved: 596[Submit][Status] ...
- [BZOJ 1502] [NOI2005] 月下柠檬树 【Simpson积分】
题目链接: BZOJ - 1502 题目分析 这是我做的第一道 Simpson 积分的题目.Simpson 积分是一种用 (fl + 4*fmid + fr) / 6 * (r - l) 来拟合 fl ...
- 1502: [NOI2005]月下柠檬树
一堆圆台平行光的投影 在草稿纸上画一下,发现对于一个圆,它投影完还是一个半径不变的圆. 定义树的轴在投影平面上经过的点为原点,定一个正方向,建立平面直角坐标系, 能发现,对于一个半径为\(r\),高度 ...
- [NOI2005]月下柠檬树[计算几何(simpson)]
1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1169 Solved: 626[Submit][Status] ...
- [NOI2005]月下柠檬树
题意 F.A.Qs Home Discuss ProblemSet Status Ranklist Contest 入门OJ ModifyUser autoint Logout 捐赠本站 Probl ...
- 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分
[BZOJ1502][NOI2005]月下柠檬树 Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树 ...
- 【bzoj 1502】月下柠檬树
月下柠檬树 题意 求n个圆与他们的公切线的定积分. 解法 求出圆的公切线就可以了. 特别坑的一点 : 最两端的圆,有可能会被其他的圆所包含,所以要重新求一下最左端与最右端. 比较坑的一点 : 精度要设 ...
- 5.21 省选模拟赛 luogu P4207 [NOI2005]月下柠檬树 解析几何 自适应辛普森积分法
LINK:月下柠檬树 之前感觉这道题很鬼畜 实际上 也就想到辛普森积分后就很好做了. 辛普森积分法的式子不再赘述 网上多的是.值得一提的是 这道题利用辛普森积分法的话就是一个解析几何的问题 而并非计算 ...
- BZOJ1502:[NOI2005]月下柠檬树——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=1502 https://www.luogu.org/problemnew/show/P4207 李哲 ...
随机推荐
- CPU 硬盘性能到底相差多少
本文以一个现代的.实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据吞吐量.通过粗略的估算PC各个组件的相对运行速度,希望能给 ...
- 【学习笔记】Xcode常见设置
一.设置主题和字体大小 二.设置显示代码行号
- HDU1042 N! 大数的阶乘
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 由于数字特别大, 所以用数组来模拟. 经测试, 数组大小开50000 可过. 附AC代码, 欢迎 ...
- 杭电ACM2096--小明A+B
http://acm.hdu.edu.cn/showproblem.php?pid=2096 本来就是很简单.但是数据的大小有要求. (a%100+b%100)%100和(a+b)%100本来没有什么 ...
- 洛谷 P1195 口袋的天空
题目背景 小杉坐在教室里,透过口袋一样的窗户看口袋一样的天空. 有很多云飘在那里,看起来很漂亮,小杉想摘下那样美的几朵云,做成棉花糖. 题目描述 给你云朵的个数N,再给你M个关系,表示哪些云朵可以连在 ...
- 使用Hint来优化执行计划
最近看主管优化了一个HINT相关的查询 借此机会学习下HINT 参考Notes: Note 129385 - Database hints in Open SQL http://www.stechno ...
- iOS开发零基础教程之生成git所需的SSH keys
在我们github看到了一个不错的第三方库时,可能我们想把他git clone到本地,我们需要复制他的SSH URL,如下图: 复制完地址之后,我们需要打开终端,然后输入命令: git clone + ...
- 求一个String 类型数组是不是都是回文,是返回1,否则返回-1
package 回文; public class yhisHuiWen { public static void ishuiwen(String arr[]){ boolean flag=true;/ ...
- 一致性哈希(consistent hashing)算法
文章同步发表在博主的网站朗度云,传输门:http://www.wolfbe.com/detail/201608/341.html 1.背景 我们都知道memcached服务器是不提供分布 ...
- C# ProperTyGrid 自定义属性
C# 如果要实现自定义属性必须要需要实现接口ICustomTypeDescriptor // 摘要: // 提供为对象提供动态自定义类型信息的接口. public interface ...