TOJ 4701 求阴影部分面积
4701: 求阴影部分面积 
本文版权归BobHuang和博客园共有,不得转载。如想转载,请联系作者,并注明出处。
Total Submit: 63 Accepted:40
Description
设正方形ABCD边长为a,分别以B和D为圆心,绘制半径为a的1/4圆,与正方形的内切圆相交与M、N、O、P点,求这些交点围成的阴影部分面积。

Input
输入数据有多组,每组输入一个正整数a(a<=20),表示正方形的边长,输入以EOF结束。
Output
每组输出一个小数,表示阴影部分的面积,保留为2位小数
Sample Input
2
Sample Output
1.97
Hint
圆周率PI取acos(-1.0)
Source
这个几何挺经典的,其实主要是利用了一个特殊的三角形。圆心角是圆周角的二倍
以前我在我博客里写过答案,现在一时间还真的竟然是推不出来的

写一下推演过程
红色三角形的三边是已知的,分别是1,√2,2
然后根据余弦定理求出∠1,∠2是∠1的两倍
有一个要求的扇形显而易见,其角度也能很快得到
本文版权归BobHuang和博客园共有,不得转载。如想转载,请联系作者,并注明出处。

减去两个三角形就是一半面积的一部分

一半的阴影剩下的一部分如上图所示
两个扇形找到了,三角形也可以求出来,直接手算出cosa啥的
很简单
求三角形面积
{
double a=1.0,b=2.0,c=sqrt(2.0),s,area;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%.12f”,area);
}
求一份的面积
{double PI=acos(-1.0);
double a1=acos(1.25/sqrt(2.0));
double a2=acos(-0.5/sqrt(2.0))-PI/2.0;
double s=a1*2+a2/2-0.661437827766;
printf(“%.12f”,s);
}
因为a只有20,所以这样做的精度就没有问题,否则等比列变幻上去就好了
ac代码
#include <stdio.h>
int main()
{ int a;
while(~scanf("%d",&a)){
a*=1.0;
printf("%.2f\n",0.492635644*a*a);}
return ;
}
TOJ 4701 求阴影部分面积的更多相关文章
- Python求阴影部分面积
一.前言说明 今天看到微信群里一道六年级数学题,如下图,求阴影部分面积 看起来似乎并不是很难,可是博主添加各种辅助线,写各种方法都没出来,不得已而改用写Python代码来求面积了 二.思路介绍 1.用 ...
- 微信群里一道六年级数学题,求阴影面积,那我只能用python代码了
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- 25.按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有
package zhongqiuzuoye; //自己写的方法 public class Rect { public double width; public double height; Rect( ...
- POJ 1151 / HDU 1542 Atlantis 线段树求矩形面积并
题意:给出矩形两对角点坐标,求矩形面积并. 解法:线段树+离散化. 每加入一个矩形,将两个y值加入yy数组以待离散化,将左边界cover值置为1,右边界置为2,离散后建立的线段树其实是以y值建的树,线 ...
- UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...
- hdu 1542 扫描线求矩形面积的并
很久没做线段树了 求矩形面积的并分析:1.矩形比较多,坐标也很大,所以横坐标需要离散化(纵坐标不需要),熟悉离散化后这个步骤不难,所以这里不详细讲解了,不明白的还请百度2.重点:扫描线法:假想有一条扫 ...
- 三角剖分求多边形面积的交 HDU3060
//三角剖分求多边形面积的交 HDU3060 #include <iostream> #include <cstdio> #include <cstring> #i ...
- Art Gallery - POJ 1279(求内核面积)
同上面几道题差不多,需要先求出来内核,然后直接用叉积求出来面积即可. 代码如下: #include<iostream> #include<string.h> #include& ...
- Area - POJ 1654(求多边形面积)
题目大意:从原点开始,1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走.求出最后的多边形面积. 分析:这个多边形面积很明显是不规则的, ...
随机推荐
- kafka基础六
kafka中的高可用HA 1.replication副本 同一个partition会有一个leader和多个副本,这些副本存储的内容与leader相同,可以通过 server.properties 配 ...
- javascript for/forEach
基本用法 for:for(var i=0;i<arr.length;i++) forEach:arr.forEach(function(value,index,arr){},),其中functi ...
- Sunday算法模板
Sunday是一个线性字符串模式匹配算法.算法的概念如下: Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法.其核心思想是:在匹配过程中,模式串并不被要求一定要 ...
- (转载)EventBus使用详解
(转载)http://liuling123.com/2016/01/EventBus-explain.html 概述 EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的 ...
- IOS typedef 函数指针的用法
代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字. 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换. 用 ...
- SqlServer表和excel数据批量复制方法
SqlServer表和excel数据批量复制方法 一.SqlServer表数据复制到excel方法: 1.新建查询,用sql语句把表数据读出来 2.然后,选择数据,右键“复制”(如果需要表字段名称,则 ...
- UVA 10003 cuting sticks 切木棍 (区间dp)
区间dp,切割dp[i][j]的花费和切法无关(无后效性) dp[i][j]表示区间i,j的花费,于是只要枚举切割方法就行了,区间就划分成更小的区间了.O(n^3) 四边形不等式尚待学习 #inclu ...
- UVA 12563 Jin Ge jin Qu [h] ao 劲歌金曲 (01背包)
每首只能唱一次,而且中间不能不唱歌,所以先把状态赋值为-1,以区别合法状态和非法状态,在唱歌曲目最多的条件下,离开时间应该尽量晚. 状态定义f[i][j]考虑前i首歌唱歌时间为j的最大唱歌曲目 #in ...
- 强化学习_Deep Q Learning(DQN)_代码解析
Deep Q Learning 使用gym的CartPole作为环境,使用QDN解决离散动作空间的问题. 一.导入需要的包和定义超参数 import tensorflow as tf import n ...
- 转载:收费版APP三年总结(个人经验+数据图分享)
各位朋友好,apop感觉这里的朋友有许多是以广告收入为主,所以apop来分享另外一块(收费版APP)的个人三年来的总结分享,希望对各位有帮助.首 先,其实在AppStore(或GooglePlay)上 ...