码迷,mamicode.com
首页 > 其他好文 > 详细

【HDU 5858】Hard problem

时间:2016-08-19 00:42:54      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 

边长是L的正方形,然后两个半径为L的圆弧和中间半径为L的圆相交。求阴影部分面积。

以中间圆心为原点,对角线为xy轴建立直角坐标系。

然后可以联立方程解出交点。

交点是$(\frac{\sqrt{7} L}{4\sqrt{2}},\frac{L}{4\sqrt{2}})$。

然后用余弦定理求角度、就可以求扇形面积。

阴影部分的一块=半圆-扇形*2-(大扇形-三角形)*2。

具体可以自己画图画一下。

#include <cstdio>
#include <cmath>
#define dd double
#define sf(a) scanf("%d",&a)
#define sqr(x) ((x)*(x))
const dd pi=acos(-1.0);
using namespace std;
int main() {
	int t;
	sf(t);
	while(t--){
		int l;
		sf(l);
		dd h=l/sqrt(2),b=l/2.0,l2=sqr(l);
		dd y=h/4.0,x=y*sqrt(7);
		dd b2=sqr(b),a2=b2,c2=sqr(x-b)+sqr(y);
		dd jd=acos((a2+b2-c2)/sqrt(a2)/b/2.0);
		dd s1=jd*b2;
		dd jd2=acos((l2+sqr(h)-a2)/l/h/2.0);
		dd s2=jd2*l2/2;
		dd s3=h*x/2.0;
		dd ss=(s2-s3)*2.0;
		dd by=pi*b2/2.0;
		printf("%.2f\n",(by-ss-s1)*2);
	}
}

  

【HDU 5858】Hard problem

标签:

原文地址:http://www.cnblogs.com/flipped/p/5785949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!