习题10-39 UVA 11186 Circum Triangle圆周上的三角形
来源:互联网 发布:通达信vol源码 编辑:程序博客网 时间:2024/06/08 20:06
题目问题描述的很简单:
不过超时了好几次,超时都是因为用了三重循环。
其实在网上看到了一个n^2的方法来求圆上的三角形。
思路:
1.先把所有角度排序。
枚举所有的两个点,i,j,那么我们能控制的只有Soij,所以只看这个面积,j点右边的有n - j个,算一下得出这n - j个是加Soij,ij中间有j - i + 1个三角形,算一下得出,这个j - i
+ 1 个三角形需要减, i右边有i - 1个三角形,算一下得出,这i - 1 个三角形需要加。
所以对于目前的i , j点来说,一共有2i - 2j + n 个三角形需要加上,把所有加完既是待求所有三角形面积!!
代码如下:
#include<cmath>#include<cstdio>#include<algorithm>using namespace std;const int maxn = 500 + 10;const double pi = acos(-1.0);double p[maxn];int main(){ int n,r; while(scanf("%d%d",&n,&r) == 2 && (n || r)){ for (int i = 0; i < n; ++i)scanf("%lf",&p[i]); double sum = 0; sort(p,p+n); for (int i = 0; i < n - 1; ++i) for (int j = i + 1; j < n; ++j){ double d1=fabs(p[j]-p[i])*pi / 180.0; sum += (2*i-2*j+n)*0.5*sin(d1)*r*r; } printf("%.0lf\n",sum); } return 0;}
0 0
- 习题10-39 UVA 11186 Circum Triangle圆周上的三角形
- UVa 11186 Circum Triangle 圆周上的三角形面积之和
- UVA 11186 - Circum Triangle(圆上三角形求法)
- Circum Triangle - UVa 11186 三角形面积
- uva 11186 - Circum Triangle
- Circum Triangle - UVa 11186
- UVA - 11186-Circum Triangle
- UVA 11186(p349)----Circum Triangle
- uva 11186 - Circum Triangle(几何)
- Circum Triangle UVA
- UVA 11186 - Circum Triangle(计算几何+容斥)
- 习题1-6 三角形(triangle)
- 习题2-3 倒三角形(triangle)
- 习题2-3 倒三角形 (triangle)
- 树上三角形(triangle) 基于LCT上的暴力
- UVa 11401 Triangle Counting 数三角形
- UVA 11401 Triangle Counting数三角形
- 算法竞赛入门经典 习题1-9 三角形(triangle)
- Mplayer & SMplayer & 软件配置
- C++自制Redis数据库(四) 设计开始 敲定各模块架构--网络模块
- MySQL知识(三)——数据类型
- USACO--Barn Pepair
- HTML <textarea> cols, rows属性和宽度高度关系研究
- 习题10-39 UVA 11186 Circum Triangle圆周上的三角形
- 面试笔试杂项积累-leetcode 146-150
- ELK 开源实时日志分析平台部署安装
- hdu4296 Buildings(贪心)
- 2016新的一年
- 祝福:新春新年大吉大利。问鼎天下,谁与争锋。非递归非交换非转数组非无序全排列组合算法,诚邀比、测、评。
- POJ 1698 Alice's Chance(最大流)
- zoj3471 Most Powerful(状态压缩dp)
- 面试笔试杂项积累-leetcode 151-155