【HNOI2003】多边形 【题目描述】 在一个多边形的展厅(不一定是凸多边形)内,一个警卫站在展厅中的某一些点,是可以看到展厅内所有地方的,而有些点则不行。比如下图中,站在A点或者B点,就不能看到展厅的某些地方,而站在C点,则可以看到展厅内的所有地方。 准确的说,站在图中阴影部分所示的任意一个点内,都可以看到展厅内的所有地方。 你的任务就是编写一个程序,计算阴影部分的面积。 【输入】 第一行是一个自然数N,表示多边形的顶点数。N不超过1500。之后N行每行两个整数(用空格分开),依次表示多边形的每个顶点的坐标。 【输出】 仅1行,是阴影部分的面积,保留2位小数。 【输入样例】 5 0 0 0 6 6 6 6 0 3 3 【输出样例】 9.00 【题解】 半平面交模板题,把多边形每一条边当成直线处理,然后做半平面交就好了。注意题中点是按照顺时针给出的,应该按照逆时针得到直线才保证直线左侧是半平面区域,稍微处理一下就好了。这道题目比较特殊,半平面交不会出现解无穷大的情况,所以可以放心大胆算面积。 本蒟蒻第一个点一直过不了OTL网上找到的代码似乎也交不过,所以特判了XD如果各位大神切了这个点,还求指点一下orz 【代码】 O(n^2)算法就可过,我写的O(nlogn)。 【HNOI2003】多边形#代码