首页 > 其他分享 >hdu Circular Area

hdu Circular Area

时间:2023-07-18 19:35:42浏览次数:49  
标签:hdu r1 r2 Area double x2 y1 y2 Circular


计算两圆相交 的面积。

参考文章:http://blog.sina.com.cn/s/blog_850498e20100w6fq.html


 

 

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
#define INF 0x3fffffff
#define MAXN 100001
#define pi acos(-1.0)
#define eps 10e-7

double calS(double r1,double x1,double y1,double r2,double x2,double y2){
    double a1,a2, d;
    d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    if(r2-r1>= d){
       return pi*r1*r1;
    }
    if(r1+r2 <d)return 0;
    a1 = acos((r1*r1 + d*d - r2*r2)/(2.0*r1*d));
    a2 = acos((r2*r2 + d*d - r1*r1)/(2.0*r2*d));
    return a1*r1*r1 + a2*r2*r2 - r1*d*sin(a1);
}

int main()
{
    double x1,x2,y1,y2,r1,r2, dist,ans;
    while(~scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&r1,&x2,&y2,&r2)){
        if(r1 > r2){printf("%.3f\n",calS(r2,x2,y2,r1,x1,y1));}
        else printf("%.3f\n",calS(r1,x1,y1,r2,x2,y2));
    }
    return 0;
}

 

标签:hdu,r1,r2,Area,double,x2,y1,y2,Circular
From: https://blog.51cto.com/u_16192154/6767459

相关文章

  • hdu 2227 Find the nondecreasing subsequences (树状数组+dp+离散化)
    题意:给定一个长度为n(n<=100000)的整数序列,求其中的递增序列的个数。对于某些序列中的递增序列的个数是可以用dp来求解的,其状态转移方程为:dp[i]=sum(dp[j])+1,j<i&&a[j]<a[i]根据状态转移方程可以得知这样dp的时间复杂度为O(n^2),而对于题目给定的10^6的数量级来说,这样......
  • hdu Polynomial Problem
     有点杂乱无章,考虑各种情况就行了。 #include<iostream>#include<cstdio>#include<cstring>#include<cmath>usingnamespacestd;#defineINF0x3fffffff#defineMAXN100001intmain(){intn,m,x,flag,mul,ans;charstr[MAXN];whil......
  • hdu 1010 Tempter of the Bone (dfs+奇偶剪枝)
    小记:最开始以为是T时间内,用bfsWA了,后来知道是刚好T时间,然后就用dfs,相当于暴力了,然后简单的dfs提交TLE,必须剪枝。首先判最少需要的时间是否有,没有就不用继续了,而如果有,那么因为我们是要花掉T时间刚好到达,那么我们先保证能走到终点的时间,然后在路上花掉多余的时间此时,我们必须保证......
  • 题解 HDU5726【GCD】/ LGT353762【Soso 的最大公约数】
    Problem给你一个长为\(N(1\leqN\leq1\times10^5)\)的整数序列:\(a_{1},\cdots,a_{n}(0<a_{i}\leq1\times10^9)\)。有\(Q(1\leqQ\leq1\times10^5)\)次提问。每次提问有个范围\(l,r\),你需要计算出\(\gcd(a_{l},,a_{l+1},...,a_{r})\),并且统计数对\((l’,r’......
  • SAP FI -Company Basics&Define Business/Functional Area/Credit Control
    CompanyBasics-公司基础信息SAP中公司被定义为可以根据商业法律法规创建财务报表的最小单位。在SAPFI中,一家公司可以由多个代码组成,但它提供财务报表的单单位。所有公司代码必须使用相同的会计科目表和会计年度,但每个代码可以具有不同的本地货币。科目表列表由所有可用的科目表......
  • hdu 2604(矩阵快速幂)
    题意:f和m两种字母,给出l表示有2^l个由f和m组成长度为l的字符串,如果这些字符串内包含fmf或fff子串的是一种特殊字符串,给出l问不是特殊字符串的数量是多少。题解:先暴力把前几个l的答案跑了一下,发现有个规律f(n)=f(n-1)+f(n-3)+f(n-4),试着用这个公式写了矩阵快速幂交上去......
  • hdu 1575(矩阵快速幂)
    题解:矩阵快速幂模板题。#include<stdio.h>#include<string.h>constintN=10;structMat{intg[N][N];}res,ori;intn,k;Matmultiply(Matx,Maty){Mattemp;memset(temp.g,0,sizeof(temp.g));for(inti=0;i<n;i++)......
  • hdu 5249(set + queue)
    题意:Input有大约100组数据。每组数据第一行有一个n(1≤n≤10000),代表服务记录数。接下来有n行,每一行有3种形式“inx”:代表重要值为x(0≤x≤109)的请求被推进管道。“out”:代表服务拉取了管道头部的请求。“query:代表我想知道当前管道内请求重要值的中间值.那就是......
  • hdu 5256(最长上升子序列)
    题意:我们有一个数列A1,A2…An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。请输出最少需要修改多少个元素。题解:这是一个很机智的想法,每个数字和它的对应位置的差值存到数组s中,n-s序列的最长上升子序列就是解。#incl......
  • hdu 3117(矩阵快速幂)
    题意:求斐波那契序列的第n个数。如果超过8位,只输出前4位和后4位。题解:后4位比较好办,直接mod10000就可以了,前4位不知道怎么求,网上看到一个人写的很详细易懂,需要用到斐波那契通项公式,详细见→传送门#include<stdio.h>#include<math.h>#include<string.h>structMat{long......