zoukankan      html  css  js  c++  java
  • poj1927Area in Triangle

    链接

    物理渣只能搜题解了。。

    分三种情况

    1、len>=a+b+c

    2、len<内切圆半径 圆的面积是最大的 --》以len为周长的圆

    3、看这篇http://blog.sina.com.cn/s/blog_6a46cc3f0100tujn.html

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<vector>
     7 #include<cmath>
     8 #include<queue>
     9 #include<set>
    10 using namespace std;
    11 #define N 100000
    12 #define LL long long
    13 #define INF 0xfffffff
    14 const double eps = 1e-8;
    15 const double pi = acos(-1.0);
    16 const double inf = ~0u>>2;
    17 int dcmp(double x)
    18 {
    19     if(fabs(x)<eps) return 0;
    20     else return x<0?-1:1;
    21 }
    22 int main()
    23 {
    24     double a,b,c,l;
    25     int kk = 0;
    26     while(scanf("%lf%lf%lf%lf",&a,&b,&c,&l)!=EOF)
    27     {
    28         if(fabs(a)<eps&&fabs(b)<eps&&fabs(c)<eps&&fabs(l)<eps) break;
    29         double p = (a+b+c)/2;
    30         double area = sqrt(p*(p-a)*(p-b)*(p-c));
    31         double r = sqrt((p-a)*(p-b)*(p-c)/p);
    32         double ans ;
    33         if(dcmp(2*pi*r-l)>=0)
    34         {
    35             ans = l*l/(4*pi);
    36             //cout<<"2"<<endl;
    37         }
    38         else if(dcmp(l-a-b-c)>=0)
    39         {
    40             ans = area;
    41             //cout<<"1"<<endl;
    42         }
    43         else
    44         {
    45             double k = (a+b+c-l)/(a+b+c-2*pi*r);
    46             r*=k;
    47             ans = area-area*k*k+pi*r*r;
    48            // cout<<"3"<<endl;
    49         }
    50         printf("Case %d: %.2f
    ",++kk,ans);
    51     }
    52     return 0;
    53 }
    View Code
  • 相关阅读:
    VUE-cli使用
    2017/04/09王晨分享课大纲
    CommonJS模块和ES6模块的区别
    css常见布局方式
    从输入 URL 到页面加载完成的过程中都发生了什么
    函数节流与防抖的实现
    JavaScript表单
    jQuery方法实现
    移动端去除横向滚动条
    请假时碰到法定假期,实际请假几天?
  • 原文地址:https://www.cnblogs.com/shangyu/p/3852978.html
Copyright © 2011-2022 走看看