2013蓝桥杯最后一题

题目大概意思是说 地面有一个已知长宽的农场,高空中漂浮着一些圆形的浮岛,已知阳光和地面的夹角,那么农场中有些地方就会被浮岛的阴影覆盖不能种植,那么请问:能种植的面积是多少呢?

在一开始要求输入农场的长x,宽y,阳光与地面夹角的度数degree,浮岛的个数num,每个浮岛的坐标xi,yi,zi,和相应的半径ri。

我们在赛场上的时候由于思维僵化,想的都是用数学的方法,找交点,分割图形,算面积,但大家基本都没人做出来。结果我一出考场,就想到可以用大量随机点投影的方法,通过算随机点与每个圆心的距离即可知是否在阴影区中,然后用不在阴影区的比率乘以农场面积即可得可种植面积了。

具体程序如下:

#include "iostream" #include "math.h" #include "stdlib.h" #include "stdio.h" #define PI 3.1415926 #define M 1000000 using namespace std; double x,y,degree,xi[1000],yi[1000],zi[1000],ri[1000],xx,yy;int num,n;long m,mm; double distance(double x1,double

read more