zoukankan      html  css  js  c++  java
  • 错题回顾总结:面积交

    传送门:http://192.168.173.163/JudgeOnline/problem.php?cid=1244&pid=4

    解析:
    坐标系按照长短轴比例变换,之后相当于求两个等大的圆的面积交,求完后再乘上变换比例即可。
    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		double a,b,x1,y1,x2,y2;
    		scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&x1,&y1,&x2,&y2);		//输入实数用"%lf"哦! 
    		double rate=a/b;
    		x1=x1/rate;x2=x2/rate;						//坐标系按照长短轴比例变换,
    											//之后相当于求两个等大的圆的面积交
    		double r=b;							//将两个椭圆都变成两个圆了! 
    		double d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));		//计算两个圆心之间的距离公式 
    		double ans;
    		
    		if(d>=2*r) ans=0;		//两个圆不相交哦! 
    		else
    		{
    			double ang=2*acos(d/2/r);		 //辐角  acos(a/b) in c++ == arccos(a/b) in maths
    			double l=sqrt(r*r-d*d/4);
    			ans=r*r*ang-l*d;		//geometric konledge!
    		}
    		printf("%.2f
    ",ans*rate);		//保留两位小数的实数 	%.2f 
    	}
    	return 0;
    }
    

      这个几何公式的推导,待我用心研究哦!

  • 相关阅读:
    「CF505E」 Mr. Kitayuta vs. Bamboos
    「CF1438D」 Powerful Ksenia
    Kruskal重构树
    20210528模拟赛总结
    20210527模拟赛总结
    20210526模拟赛总结
    20210525模拟赛总结
    CF #722 Div2题解
    洛谷P3652 csh和zzy的战争 题解
    [清华集训2012]模积和 题解
  • 原文地址:https://www.cnblogs.com/dragondragon/p/11386021.html
Copyright © 2011-2022 走看看