农场阳光 (simpson)

计算若干个圆与一个矩形的面积并

simpson公式 ans = ( f[l] + f[r] + 4 * f[mid] ) * (r-l) / 6

 1 uses math;
 2 type arr=record x,y:double; end;
 3 const eps=1e-8;
 4 var a,b,n,i:longint;
 5     sl,sr,sm:double;
 6     T:array[0..100] of record x,y,z,r:double; end;
 7     f:array[0..100] of arr;
 8     g:double;
 9 function sum(sl,sr,sm,l,r:double):double;
10 begin
11     exit((sl+sr+4*sm)*(r-l)/6);
12 end;
13 procedure sort(l,r:longint);
14 var i,j:longint; x,y:double;
15     temp:arr;
16 begin
17     i:=l;j:=r;x:=f[(i+j) div 2].x; y:=f[(i+j) div 2].y;
18     while i<=j do
19     begin
20         while (f[i].x<x) or (f[i].x=x) and (f[i].y<y) do inc(i);
21         while (x<f[j].x) or (x=f[j].x) and (y<f[j].y) do dec(j);
22         if i<=j then
23         begin
24             temp:=f[i]; f[i]:=f[j]; f[j]:=temp;
25             inc(i); dec(j);
26         end;
27     end;
28     if l<j then sort(l,j);
29     if i<r then sort(i,r);
30 end;
31 function calc(xx:double):double;
32 var i,j,k:longint;
33     cnt,yy:double;
34 begin
35     k:=0;
36     for i:=1 to n do
37         if abs(T[i].x-xx)+eps<T[i].r then
38         begin
39             yy:=sqrt(sqr(T[i].r)-sqr(T[i].x-xx));
40             inc(k);
41             f[k].x:=T[i].y-yy;
42             f[k].y:=T[i].y+yy;
43         end;
44     sort(1,k);
45     i:=1; cnt:=0;
46     //if xx=a/2 then writeln(f[1].x:4:2,f[1].y:4:2);
47     while i<=k do
48     begin
49         j:=i;
50         while (j<k) and (f[j+1].x<=f[i].y) do
51         begin
52             inc(j);
53             if f[j].y>f[i].y then f[i].y:=f[j].y;
54         end;
55         if not ((f[i].y<0) or (f[i].x>b)) then
56         begin
57             if (f[i].y<=b) and (f[i].x>=0) then cnt:=cnt+f[i].y-f[i].x else
58             if (f[i].y>b)  and (f[i].x<0)  then cnt:=cnt+b else
59             if (f[i].y>b) then cnt:=cnt+b-f[i].x else
60             if (f[i].x<0) then cnt:=cnt+f[i].y;
61         end;
62         i:=j+1;
63     end;
64     exit(cnt);
65 end;
66 function simpson(l,r,mid,sl,sr,sm,w:double):double;
67 var sm1,sm2,m1,m2,w1,w2:double;
68 begin
69     m1:=(l+mid)/2;
70     m2:=(r+mid)/2;
71     sm1:=calc(m1);
72     sm2:=calc(m2);
73     w1:=sum(sl,sm,sm1,l,mid);
74     w2:=sum(sm,sr,sm2,mid,r);
75     if abs(w1+w2-w)<eps then exit(w);
76     exit(simpson(l,mid,m1,sl,sm,sm1,w1)+simpson(mid,r,m2,sm,sr,sm2,w2));
77 end;
78 begin
79     assign(input,‘sun.in‘);reset(input);
80     assign(output,‘sun.out‘);rewrite(output);
81     readln(a,b);
82     readln(g);
83     readln(n);
84     for i:=1 to n do
85     begin
86         readln(T[i].x,T[i].y,T[i].z,T[i].r);
87         T[i].x:=T[i].x+cos(g/180*pi)/sin(g/180*pi)*T[i].z;
88     end;
89     sl:=calc(0); sr:=calc(a); sm:=calc(a/2);
90     //writeln(sl:4:2,‘ ‘,sr:4:2,‘ ‘,sm:4:2);
91     writeln(a*b-simpson(0,a,a/2,sl,sr,sm,sum(sl,sr,sm,0,a)):0:2);
92     close(input);
93     close(output);
94 end.
时间: 2024-11-06 12:21:09

农场阳光 (simpson)的相关文章

算法-蓝桥杯习题(六)

蓝桥杯习题 蓝桥杯练习系统习题加答案,总共分为6部分,90%习题使用C语言解答,部分使用C++或者Java.大部分习题为搜索参考或者别人提供所得,不足之处在所难免,恳请批评指正(预计200多题,习题仅供学习交流) 目录 算法训练(详见 算法-蓝桥杯习题(一))Go 算法训练(详见 算法-蓝桥杯习题(二))Go 算法提高(waiting...) 历届试题(详见 算法-蓝桥杯习题(六))Go 历届试题(详见 算法-蓝桥杯习题(七))Go 蓝桥杯练习系统评测数据 链接: http://pan.baid

算法笔记_203:第四届蓝桥杯软件类决赛真题(C语言B组)

目录 1 猜灯谜 2 连续奇数和 3 空白格式化 4 高僧斗法 5 格子刷油漆 6 农场阳光   前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 猜灯谜 标题:猜灯谜 A 村的元宵节灯会上有一迷题: 请猜谜 * 请猜谜 = 请边赏灯边猜 小明想,一定是每个汉字代表一个数字,不同的汉字代表不同的数字. 请你用计算机按小明的思路算一下,然后提交"请猜谜"三个字所代表的整数即可. 请严格按照格式,通过浏览器提交答案. 注意:只提交一个3位的整数,不要写其它附加内容,比如:说明性的文字. 9

北京阳光旅业伴我一家四口澳大利亚暖心之旅

北京阳光旅业世界景地简介分享之: [蒙锥克山]蒙锥克山是巴塞罗那市中心西南部的一座小山,坐落在Pla?a Espanya旁,山势平缓,但是东侧临海处则几乎是峭壁.山顶高173米.除却曾经罗马帝国留下的痕迹,山顶的至高点山顶的至高点蒙锥克城堡(Castell de Montju?c),是眺望海港和市区或围观日落的好去处. 阳光旅业一家四口澳大利亚暖心之旅 活了大半岁数了,终于有时间开始享受生活了. 在我写游记之前,首先,我特别感谢北京阳光旅业的客服人员给我们提供的周到的服务. 从出发之前的一系列细

我随北京阳光旅业马来西亚快乐游

阳光旅业世界名胜简介分享之: [圣湖仙女洞]圣湖仙女洞是一处沼泽湖泊,源中有泉水不断喷涌,晶莹透亮,清澈如玉,四周绿草如茵,当地蒙古族群众称之为圣湖.在圣湖的西北面有一外天然的大岩洞,此洞幽深奇特,神秘莫测,又与圣湖相连,称仙女洞.洞室内最奇妙的莫过于被称为"仙女舞厅"的洞室,在上面来回踱步,会发出美妙声响. 北京阳光旅业伴我马来西亚快乐游 写这篇游记,其实感慨跟多.很久之前就答应带着母亲出去玩,因为工作忙,所以一直就没时间.去年没这么忙了,就带着家人去了马来西亚阳光旅业 AVANI

阳光旅业一家四口澳大利亚暖心之旅

阳光旅业景点知识小普及: [爱丁堡]这座山城不仅是苏格兰的首府,更是当地首屈一指的文化历史中心和旅游城市,有着"北方雅典"的美誉,是苏格兰第二大城市,英国第七大城市.来到爱丁堡让你重新认识了一种颜色即铅黛色,这种沉静的色调浓缩在众多的古迹和建筑里,移步换景,令人不禁赞叹爱丁堡的确是苏格兰精神文化最好诠释. 阳光旅业一家四口澳大利亚暖心之旅 活了大半岁数了,终于有时间开始享受生活了. 在我写游记之前,首先,我特别感谢北京阳光旅业的客服人员给我们提供的周到的服务. 从出发之前的一系列细心的

我随阳光旅业一家四口澳大利亚暖心之旅

阳光旅业世界名胜简介分享之: [莲花山]莲花山位于康乐县城以南50公里处,是省级自然保护区,是旅游避暑的胜地.莲花山山峰险奇峻秀,松柏杨桦混生,人文景观荟萃.山体呈鳞形断层,群峰耸立,形似莲瓣,中顶平圆,状如连蕊,酷似初绽莲花,俊丽娇妍.整个山峦岚气笼罩,满目绿海,像浩大的莲叶罩在莲峰之下.故名"莲花山". 阳光旅业一家四口澳大利亚暖心之旅 活了大半岁数了,终于有时间开始享受生活了. 在我写游记之前,首先,我特别感谢北京阳光旅业的客服人员给我们提供的周到的服务. 从出发之前的一系列细心

[BZOJ 1502][NOI2005]月下柠檬树(自适应Simpson积分)

Description 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思索着人生的哲理. 李哲是一个喜爱思考的孩子,当他看到在月光的照射下柠檬树投在地面上的影子是如此的清晰,马上想到了一个问题:树影的面积是多大呢? 李哲知道,直接测量面积是很难的,他想用几何的方法算,因为他对这棵柠檬树的形状了解得非常清楚,而且想好了简化的方法. 李哲将整棵柠檬树分成了 n 层,由下向上依次将层编号为 1,2,...,n.从第

欢迎来访个人网站——阳光日志

在CSDN写博客写了四年了,感谢大家一直以来对我的关注和支持! 看博客.写博客对于我来说已经是工作和学习中的不可或缺的一部分了.对于热爱写博客的我来说,很早就希望有一个自己的干净.自由.独立的空间站点了.经历一个多月的准备,这个想法终于实现了!它就是我刚建立的个人博客站点--阳光日志. 在未来一断时间内,技术类的文章我将在CSDN和阳光日志里同步更新,非技术类的文章将只在阳光日志里发布. 欢迎大家来访我的个人站点阳光日志!希望大家能一如继往的支持我!

派派农场游戏开发 派派农场系统APP

魔幻宝石屋系统开发,魔幻宝石屋源码开发,魔幻宝石屋咨询:185,2946,0381陈生(微电),魔幻宝石屋模式开发,魔幻宝石屋APP开发,魔幻宝石屋平台搭建 魔幻宝石屋游戏是一套寓教于乐的教育游戏,可从充满乐趣的游戏中学到众多方面的知识.在游戏中你学的越多,悟的越多,赚的越多,同时提高你对游戏果实规律的认识,对人生机会的把握,面对生活中各种机遇,做出自己正确理智的判断.魔幻宝石屋游戏让你能学习基本的知识,以及如何掌控自己的个人状况,通过恰当的管理,教你如何实现财富自由,创造美好生活! 魔幻宝石屋