UVA 11186

题目大意:给出一个圆,在圆上有n个点,给出每个点的角度(相当于坐标)
求出每三个点围成的面积之和!

分析
给出点的数量是500,最简单的思路就是三层for循环直接枚举三个点然后求和
但是这样会超时,所以必须要想办法优化!

我们就要利用 所有的点,都在圆上这一信息!

图解
如果现在拿出三个点 i ,j ,k 组成一个三角形
那么 Sijk 有如下关系


那么就说明不管 k是在左边还是右边,都需要 减去Sijo
当k在中间时,则需要 加上 Sijo

所以我们可以对 所有的点 按照 弧度大小 排序

每次只枚举两个点 分别是 i,j ( j的弧度大,i的弧度小)

那么 就会有 n-j 个点 在j的左侧
然后有 i-1个点在右侧

所以总共有 n-j+i-1 需要减去 Sijo

并且有 j-i-1 个点在中间
那么就有 j-i-1 个 需要加上 Sijo

所以 总共需要 n-2 * j-2 * j 个 Sjio
那么根据三角形面积公式 S=1/2 * a * b * sinc

则有 0.5 * r * r * sin ( a[j]-a[i] )*(n- 2 * j * 2 * i )
即为 i,j贡献的所有面积值!

然后不断枚举然后累加
最后利用 floor(ans+0.5) 取最接近的整数即为答案!

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;double r;while(cin>>n>>r&&n&&r){double a[500];for(int i=0;i<n;i++){cin>>a[i];a[i]=a[i]/180*acos(-1);  //转换成弧度制!,转换成弧度制之后才能用三角函数! }sort(a,a+n);double num=0;for(int i=0;i<n-1;i++)//本题核心内容! for(int j=i+1;j<n;j++)num+=(n+2*i-2*j)*sin(a[j]-a[i]);//这里用了一个非常巧妙的数学推理!!! num=0.5*r*r*num;// 1/2*r*r*num;   //利用了一个公式! 1/2 *a*b*sinc//二分之一*a*b*sinc! num=floor(num+0.5);//这样就可以取最接近的整数了!,就不用写那么麻烦了!!//num=floor(num+0.5) 即为取最接近的整数!!! printf("%lld\n",(long long)num);}return 0;
}

Circum Triangle(圆上三角形)相关推荐

  1. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  2. 圆上任选三点组成三角形,这个三角形是锐角、钝角和直角三角形的概率分别是多少?

    圆上任选三点组成三角形,这个三角形是锐角.钝角和直角三角形的概率分别是多少? 问题可以等价于: 任取三角形,圆心落在三角形内.外.边上的概率各是多少 这三种情况分别对应锐角.钝角.直角. 然后这就变成 ...

  3. CSS画圆、三角形、品字、骰子

    CSS画圆.三角形.品字.骰子 前言:这篇文章主要是本人正在看面试题,面试题当成八股文来背,太难了.所以,通过写笔记,并自己实践来加深印象.如果这篇文章对你有帮助,请不要吝啬你的赞. 圆 让 bord ...

  4. C# Graphic 绘制圆、三角形、椭圆、图片

    C# Graphic 绘制圆.三角形.椭圆.图片 原文:C# Graphic 绘制圆.三角形.椭圆.图片 在form和panel上可以绘制图形,线段,圆,文字,图形等等. 绘制代码必须放在OnPain ...

  5. 51nod 1298 圆与三角形(几何知识)

    Description 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). Inpu ...

  6. 51Nod 1298 圆与三角形

    题目链接: 51Nod 1298 圆与三角形 题目描述: 给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No". ...

  7. 直线、圆、三角形等分平面部分数的问题

    http://blog.sina.com.cn/s/blog_741babe70101c5vd.html 直线.圆.三角形等分平面部分数的问题 对于比较复杂的问题,可以先观察其简单情况,归纳出其中带规 ...

  8. 牛题:等边三角形内接圆上一点到三顶点距离平方和不变

    如图,等边三角形ABC,P为三角形内接圆上一点.求证,AP^2 + BP^2 + CP^2为常数. 证明:把整个图形放在三维空间里,其中A=(1,0,0),B=(0,1,0),C=(0,0,1).因此 ...

  9. R语言使用upper.tri函数、lower.tri函数、diag函数改变matrix矩阵上三角形、下三角形、对角线的数值

    R语言使用upper.tri函数.lower.tri函数.diag函数改变matrix矩阵上三角形.下三角形.对角线的数值 目录

最新文章

  1. ECSHOP 数据库结构说明
  2. 素数与量子物理的结合能带来解决黎曼猜想的新可能吗?
  3. CoreOS 和 Kubernetes 1.5 自主运行 Kubernetes、Container Linux
  4. (原创)c++中的类型擦除
  5. python 网络编程 struct解包时报错 struct.error: unpack requires a buffer of 4 bytes
  6. iOS之深入解析谓词NSPredicate的语法与应用
  7. redis内存行数据库细节
  8. 蓝桥杯-卡片-填空题
  9. 前端学习(2052)vue之电商管理系统电商系统之配置http服务
  10. Linux学习总结(23)——SSH协议详解
  11. Service Worker 全面进阶
  12. Windows程序设计——画圆
  13. Oracle12c错误01017,ORACLE12.2中用户无法登陆报ORA-01017的解决办法
  14. 微pe不识别nvme固态硬盘_微pe工具箱2.0下载|微PE2.0支持注入NVMe固态硬盘M2SSD驱动版 下载_当游网...
  15. iOS 一步步带你实践组件二进制方案
  16. 亚马逊日本站好不好做?怎么选品?有什么注意事项?
  17. IText导出PDF添加图片,解决中文问题
  18. HAUT 1261 地狱飞龙(数值积分)(河南工业大学2017校赛)
  19. ArcGIS JSAPI2.0在IIS上的安装
  20. Jhipster 中的 Liquibase 正确使用方法

热门文章

  1. 终于来了~微信车载版正式上线~
  2. html ul在div里居中,在DIV内水平居中UL
  3. 影响应用商城搜索排名的因素
  4. ESModule中载入commjs
  5. Python爬虫实践:优志愿 院校列表
  6. 【OCM第18期开班】第18期11g OCM培训将于8月23日,晚20点在腾讯课堂开班,第1场考试免费培训!!!...
  7. 手机电池-市场现状及未来发展趋势
  8. 附录:入行 AI,选个脚踏实地的岗位
  9. eclipse中安装的lombok插件不起作用,报错:找不到getter
  10. 电商系统之延长收货与申请退款