首页 > 代码库 > LightOj1056 - Olympics(简单数学题)

LightOj1056 - Olympics(简单数学题)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1056

题意:已知体育场的形状是由一个矩形+两边的两个部分组成,两边的两个部分是属于同一个圆的;并且知道体育场的周长是400米,然后知道了,矩形的长宽之比,求矩形具体的长宽为多少;

技术分享

根据比例找到圆的半径和对应弧的圆心角即可;

 

技术分享
#include <stdio.h>#include <algorithm>#include <cstring>#include <cmath>using namespace std;const int N = 2010;const double eps = 1e-6;const double PI = acos(-1);int main(){    int T, t = 1, A, B;    double a, b, r;    scanf("%d", &T);    while(T--)    {        scanf("%d : %d", &A, &B);        a = atan(A*1.0/B);        b = PI - 2*a;        r = sqrt(B*B/(2-2*cos(b)));        double l = r*b;        double length = 200*A/(A+l);        double width = length*B/A;        printf("Case %d: %.6f %.6f\n", t++, length, width);    }    return 0;}
View Code

 

LightOj1056 - Olympics(简单数学题)