zoukankan      html  css  js  c++  java
  • hustwinter1-B

    题意:求两个相等的圆环的相交的面积....
                简单计算几何+容斥原理?
                扇形面积公式记错调了半天2333333333
         这题不难...倒是从学长那里收获了几点关于代码规范的问题... 
                听说了学长在北京区域赛时把PI定义错了一位结果一直WA的教训.... 以后还是写acos(-1)吧
         局部变量和全局变量因为【想怎么其变量名想得整个人都不好了】就起成了一样的...被学长给了差评。
    哦,对!还有一个就是发现了cmath库里有一个奇葩的函数名叫y1.。。。。。。。
    ——————————————————————————————————————————————
    竟然CE了  提示 error:pow(int,int) is ambiguous
    看来我对语言的掌握程度还是不行呀.....
    "就是一个函数声明为pow(double, double)你必须传两个double参数进去。但你传int也可以,int会转型会double,但c++有重载。声明了两个函数pow(double, double),pow(long long, double),你传两个int进去编译器不知道把int转为double还是转为long long" 
    "解决办法是把int转型成double (xxx) 或者long long (xxx)" 也可以 简单粗暴的xxx.0

    (int,int)->(double,int)?(double,double)

     


    图片

               
      



    01 #include <iostream>
    02 #include <cmath>
    03 #include <iomanip>
    04 
    05 using namespace std;
    06 
    07     int t,tt;
    08     int rr,RR,x11,x22,y11,y22;
    09     double ans;
    10     const double PI=acos(-1);
    11     const double C=10e-6;
    12     double area(int x1,int y1,int x2,int y2,int R,int r);
    13 int main()
    14 {
    15     cin>>t;
    16     tt=t;
    17     while (t--)
    18     {
    19         cin>>rr>>RR;
    20         cin>>x11>>y11>>x22>>y22;
    21         ans=area(x11,y11,x22,y22,RR,RR)-2*area(x11,y11,x22,y22,RR,rr)+
    22             area(x11,y11,x22,y22,rr,rr);
    23             cout<<"Case #"<<tt-t<<": "
    24             <<fixed<<setprecision(6)<<ans<<endl;
    25     }
    26     return 0;
    27 }
    28 double area(int x1,int y1,int x2,int y2,int R,int r)
    29 {
    30      double d;
    31      double A,a;
    32      double st;
    33       d=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
    34      if (d>=r+R)
    35         return 0;
    36      if (R-r>=d)
    37       return r*r*PI;
    38       A=acos((R*R+d*d-r*r)/(2.0*d*R));
    39       a=acos((r*r+d*d-R*R)/(2.0*d*r));
    40       st=R*d*sin(A);
    41       A=A*2;
    42       a=a*2;
    43       return  (A*R*R+a*r*r)/2.0-st;
    44 }

         
     
  • 相关阅读:
    memcache启动程序/etc/sysconfig/memcached
    shell中的点号
    mysql监控
    secureCRT 中文乱码
    memcache key
    杀死所以数据库进程
    导出表记录
    重建二叉树
    从尾到头打印链表
    二维数组中的查找
  • 原文地址:https://www.cnblogs.com/111qqz/p/4296126.html
Copyright © 2011-2022 走看看