首页 > 其他 > 详细

Rectangle Puzzle CodeForces - 280A

时间:2021-09-13 12:08:52      阅读:32      评论:0      收藏:0      [点我收藏+]

原题链接
考察:计算几何
思路:
??基本参考这位大佬的思路 GO
??如果是情况\(2\)的话,\(v\)就不存在.

Code

#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long LL;
const double PI = acos(-1);
LL w,h,a;
long double get(long double x) 
{
	if(x<0) x = -x;
	return x;
}
int main()
{
	scanf("%lld%lld%lld",&w,&h,&a);
	if(h>w) swap(h,w);
	if(a==90)
	{
		printf("%.9lf\n",1.0*h*h);
		return 0;
	}
	if(!a||a==180)
	{
		printf("%.9lf\n",1.0*w*h);
		return 0;
	}
	if(a>90) a=180-a;
	long double sina = sin(a*PI/180);
	long double cosa = cos(a*PI/180);
	long double tana = tan(a*PI/180);
	long double z  = (h*sina-w*cosa-w)/(sina*sina-cosa*cosa-2*cosa-1);
	long double v  = (w-z*cosa-z)/sina;
	long double x = z*cosa,y = z*sina;
	long double t = v*sina,u = v*cosa;
	long double ans = w*h-x*y-t*u;
	ans = v<=0?h*h/sina:ans;
	printf("%.9Lf\n",ans);
	return 0;
}

Rectangle Puzzle CodeForces - 280A

原文:https://www.cnblogs.com/newblg/p/15260698.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!