两圆相交面积

//求两圆相交的面积
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define esp 1e-8using namespace std;struct Circle{double x,y;double r;
}p[3000];
int cmp(Circle ta,Circle tb)
{return ta.x<tb.x;
}
double calArea(Circle c1, Circle c2)
{double d;double s,s1,s2,s3,angle1,angle2,temp;d=sqrt((c1.x-c2.x)*(c1.x-c2.x)+(c1.y-c2.y)*(c1.y-c2.y));if(d>=(c1.r+c2.r))//两圆相离return 0;if((c1.r-c2.r)>=d)//两圆内含,c1大return acos(-1.0)*c2.r*c2.r;if((c2.r-c1.r)>=d)//两圆内含,c2大return acos(-1.0)*c1.r*c1.r;angle1=acos((c1.r*c1.r+d*d-c2.r*c2.r)/(2*c1.r*d));angle2=acos((c2.r*c2.r+d*d-c1.r*c1.r)/(2*c2.r*d));s1=angle1*c1.r*c1.r;s2=angle2*c2.r*c2.r;s3=c1.r*d*sin(angle1);s=s1+s2-s3;return s;
}int main()
{double ans=0;int n,r;cin>>n>>r;for(int i=1;i<=n;i++)scanf("%lf",&p[i].x),p[i].r=r,p[i].y=0;sort(p+1,p+n+1,cmp);ans=n*acos(-1.0)*r*r;for(int i=1;i<n;i++)ans-=calArea(p[i+1],p[i]);printf("%.12lf\n",ans);return 0;
}

 

转载于:https://www.cnblogs.com/weeping/p/5749058.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle存储过程function,oracle 存储过程跟function

当前位置:我的异常网 数据库 oracle 存储过程跟functionoracle 存储过程跟functionwww.myexceptions.net 网友分享于&#xff1a;2014-11-26 浏览&#xff1a;0次oracle 存储过程和functionfunctionfunction 语法中本地调用用 测试用SELECT TO_DATE(2006-05, YYYY-MM) FROM …

Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置

select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v$db_cache_advice 2 where block_size8192 and advice_statusON; 中&#xff0c;size_for_estimate表示预计的数据库高速缓冲区的大小&#xff08;即&#xff1…

php 注入是什么意思,如何理解ThinkPHP框架里的依赖注入?

依赖注入&#xff0c;你可以分开理解。拆成&#xff0c;依赖和注入依赖&#xff1a;就是你现在要用 request 对象的get 方法&#xff0c;所有你必须要先能得到request对象&#xff0c;然后才能使用这个方法。这个就是依赖。注入&#xff1a;怎么得到request 对象呢&#xff1f;…

iOS - UITextField

前言 NS_CLASS_AVAILABLE_IOS(2_0) interface UITextField : UIControl <UITextInput, NSCoding>available(iOS 2.0, *) public class UITextField : UIControl, UITextInput, NSCoding 1、UITextField 的创建 Objective-C // 实例化 UITextField 对象UITextFi…

oracle一般人能不能学,Oracle人门学习笔记

1.如何显示当前用户是谁?show user;2.进入sql*plus管理工具&#xff0c;运行里面输入sqlplusw就可以了。3.disc断开当前数据库的连接4.passw修改密码命令示例&#xff1a;passw 回车更改snapall的口令旧口令&#xff1a;*******新口令&#xff1a;******重新键入新口令&#x…

欧拉图

欧拉路径&#xff1a;每条边经过且只经过一次的路径 欧拉回路&#xff1a;如果从某个点出发&#xff0c;经过且只经过每条边一次&#xff0c;最后又回到这个点的路径 欧拉图&#xff1a;存在欧拉回路的图 图&#xff1a; 平凡图&#xff1a;只含有一个点 重边&#xff1a;两点之…

oracle rac standby,oracle RAC数据库建立STANDBY(二)

这篇文章描述为RAC环境创建STANDBY数据库。由于篇幅限制&#xff0c;加上碰到了很多的bug&#xff0c;只能将文章拆分成多篇。这章介绍STANDBY数据库创建的后续操作&#xff0c;并检查STANDBY运行机制&#xff1a;首先登陆实例&#xff0c;检查数据库状态&#xff1a;bash-3.00…

[MySQL] MySQL x64 下载地址

MySQLhttp://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-winx64.ziphttp://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-5.7.14.0.msiPHP ServerWampServer2.1d-x64.exe转载于:https://www.cnblogs.com/Areas/p/5759195.html

微信php翻译和天气预报整合,微信公众平台天气预报功能开发

本来是想自己直接从中国天气网获取信息并处理&#xff0c;后来发现处理起来太麻烦&#xff0c;而且要获取所有城市的城市编码&#xff0c;再有就是&#xff01;不支持国外天气&#xff01;&#xff01;(我们学校有很多毕业生在国外上学&#xff0c;所以我考虑还是做出支持国外天…

关于Jenkins找不到依赖Jar包问题

昨晚在Jenkins发布时遇到一个Jar包找不到的问题&#xff0c;控制台的报错信息如下&#xff1a; 说白了就是找不到依赖的Jar包&#xff0c;但是当我们回退到灰度的时候发现灰度的环境是构建是没有问题的&#xff0c;为什么同一套代码在两个环境却有天壤之别呢&#xff0c;本着试…

查看Linux服务器运行级别命令,linux命令1、如何查看当前的Linux服务器的运行级别?...

1、如何查看当前的Linux服务器的运行级别&#xff1f;答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。2、如何查看Linux的默认网关&#xff1f;答: 用 “route -n” 和 “netstat -nr” 命令&#xff0c;我们可以查看默认网关。除了默认的网关信…

BIEE入门(一)架构

BIEE作为Oracle的新的商业智能平台企业版&#xff0c;起源于Oracle所收购的Siebel公司&#xff0c;BIEE原来叫做Siebel Analytic&#xff0c;但是Siebel也不是它的发明者&#xff0c;它是Siebel在2001年收购的另一个公司叫nQuire software的产品&#xff0c;这个从它的配置文件…

redhat linux 9.0 拷贝u盘的文件,肿么用U盘安装Linux,安装的是red hat 9.0…用Ubuntu很方便,redhat可以吗?...

下面有两种安装方法.从dos安装.这方法可以不用软盘,比较方便.得到dosutils目录这个目录里有从dos安装和软盘安装的工具.一般都在第一个iso文件里.在linux下可以这样装载iso文件.mount -o loop valhalla-i386-disc1.iso /mnt/cdromcd /mnt/cdromcd -r images /mnt/c 把dosutils目…

获得当前字符串的宽度

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>获得当前字符串的宽度</title> <script type"text/javascript" src"jquery-min.js"></script></…

linux需要的GLIBCXX版本,linux-如果我已经安装了GLIBCXX_4.1.2,则需要GLIBCXX_3.4.9吗?

我正在Fedora 8/9 64位(http://mediainfo.sourceforge.net/es/Download/Fedora)上安装MediainfoDLL的最新版本.我下载了libmediainfo-0.7.20和libzen0-0.4.3文件.当我尝试安装libzen0时,得到以下输出&#xff1a;# rpm -i libzen0-0.4.3-1.x86_64.Fedora_9.rpmwarning: libzen0…

小小动画

<script src"JS/jquery-1.7.2.min.js"></script><style type"text/css">* {margin: 0px;padding: 0px;}#dw {position: absolute;width: 200px;height: 70px;font-family: 迷你简书魂;font-size: 50px;}#zhezhao {position: absolute;wi…

linux so文件统一目录,linux加载指定目录的so文件

例如&#xff0c;有个so在/tmp/libs/libzmq.so.3&#xff1a;[winlindev6 libs]$ ls /tmp/libs/ -lhtotal 2.5Mlrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so -> libzmq.so.3.0.0lrwxrwxrwx 1 winlin winlin 15 Dec 12 12:58 libzmq.so.3 -> libzmq.so.3.0.0-rw…

VBS基础篇 - Dictionary对象

VBS基础篇 - Dictionary对象 Dictionary是存储数据键和项目对的对象&#xff0c;其主要属性有Count、Item、Key&#xff0c;主要方法有Add、Exists、Items、Keys、Remove、RemoveAll。 建立字典 Dim Dict : Set Dict CreateObject("Scripting.Dictionary")添加键值对…

linux编译mesa,如何在Ubuntu 16.04,17.10中安装Mesa 17.3.3

最新的MESA 3D图形库17.3.3现在在Ubuntu-X team PPA存储库中为Ubuntu 16.04和Ubuntu 17.10提供。Mesa 17.3.3实现了OpenGL 4.5 API&#xff0c;但由glGetString(GL_VERSION)或glGetIntegerv(GL_MAJOR_VERSION)/glGetIntegerv(GL_MINOR_VERSION)报告的版本取决于所使用的特定驱动…

iOS开发Swift篇—(三)字符串和数据类型

一、字符串 字符串是String类型的数据&#xff0c;用双引号""包住文字内容 let website "http://www.github.com" 1.字符串的常见操作 &#xff08;1&#xff09;用加号 做字符串拼接 let scheme "http://" let path “www.github.com” le…