专栏首页饶文津的专栏【HDU 5858】Hard problem(圆部分面积)

【HDU 5858】Hard problem(圆部分面积)

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

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

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

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

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

下图灰色部分面积=半圆-扇形S*2-(大扇形B-三角形T)*2。

S=(绿色+橙色)的一半,B=(绿色+粉色+浅黄色)的一半,T=(粉色+绿色)的一半

#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);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【POJ 1269】判断两直线相交

    饶文津
  • 【HDU 4445】Crazy Tank(暴力)

    高中物理斜抛运动,简单分析一下角度固定下来则可以计算每个cannonball的降落坐标lnd。

    饶文津
  • 【HDU 5105】Math Problem

      b≠0,f为二次函数,最大值点在区间端点或者x0=c/(2*b),当L≤x0≤R时,ans=max{f(L),f(R),f(x0)}。

    饶文津
  • 基于 React + Webpack 的音乐相册项目(上)

    笔记仓库:https://github.com/nnngu/LearningNotes

    nnngu
  • 基于 React + Webpack 的音乐相册项目(上)

    笔记仓库:https://github.com/nnngu/LearningNotes ---- 上一篇文章用爬虫自动下载了一些图片,这一篇就用这些图片做一个音...

    nnngu
  • 语义分割算法之DeepLabV3+论文理解及源码解析

    之前讲了DeepLabV1,V2,V3三个算法,DeepLab系列语义分割还剩下最后一个DeepLabV3+,以后有没有++,+++现在还不清楚,我们先来解读一...

    BBuf
  • 最全的Spring注解详解

    @Configuration : 配置类 == 配置文件,告诉Spring这是一个配置类 @ComponentScan(value="com.atguigu"...

    海仔
  • 浅谈内核的Makefile、Kconfig和.config文件

    Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎...

    韦东山
  • 一篇带你看懂Flutter叠加组件Stack

    Stack未定位的子组件大小由fit参数决定,默认值是StackFit.loose,表示子组件自己决定,StackFit.expand表示尽可能的大,用法如下:

    老孟Flutter
  • Vue项目笔记(持续更新)

    使用一个Vue实例作为中央事件总线。 Vue内部有一个事件机制,可以参考源码。 $on方法用来监听一个事件 $emit用来触发一个事件。

    杨肆月

扫码关注云+社区

领取腾讯云代金券