UVa 10589 - Area
2012-12-20 12:46
253 查看
题目:给你n个点和一个正方形,问落在以正方形四个顶点为圆心、边长为半径的圆相交的面积,面积公式:a*a*M/N,其中M是落在相交区域中点的个数。
分析:简单题、计算几何。利用已知点到矩形死歌顶点的距离判断位置关系,统计即可。
分析:简单题、计算几何。利用已知点到矩形死歌顶点的距离判断位置关系,统计即可。
#include <stdio.h> #include <stdlib.h> #include <math.h> typedef struct pnode { double x,y; pnode( double a, double b ){x = a;y = b;} pnode(){} }point; double dist( point a, point b ) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } int in( point p, double a ) { double d[4][2] = {0.0,0.0,1.0,0.0,0.0,1.0,1.0,1.0}; for ( int i = 0 ; i < 4 ; ++ i ) { point q = point( a*d[i][0], a*d[i][1] ); if ( dist( p, q ) > a ) return 0; } return 1; } int main() { int n,a; point p; while ( scanf("%d%d",&n,&a) && n ) { int count = 0; for ( int i = 0 ; i < n ; ++ i ) { scanf("%lf%lf",&p.x,&p.y); count += in( p, a+0.0 ); } printf("%.5lf\n",1.0*count*a*a/n); } return 0; }
相关文章推荐
- UVA 10522 Height to Area(已知三角形三高求面积)
- UVA 10522 Height to Area
- UVALive5910 UVA1641 POJ4022 ASCII Area【水题+输入输出】
- ASCII Area UVA - 1641 WA原因总结(没有脑子
- UVA 10522 - Height to Area(计算几何)
- UVA 1641 POJ 4022 ASCII Area
- UVa 10522 - Height to Area
- UVa 1641 - ASCII Area
- uva 10522 - Height to Area(几何)
- UVa 10522 - Height to Area
- UVa 10522 - Height to Area
- uva 1641 Ascii Area 多边形面积
- ASCII Area UVA - 1641
- UVA 10405 Longest Common Subsequence
- Area
- UVA 10759 Dice Throwing(dp 概率)
- UVa 11275 3D Triangles 空间三角形
- UVA - 12119 The Bells are Ringing (枚举)
- UVA 113-Power of Cryptography(二分+double处理大数据)
- uva 11525排列(树状数组 + 二分)