摘要:
3675 -- Telescope 再来一题。这题的代码还是继续完全不看模板重写的。 题意不解释了,反正就是一个单纯的圆与多边形的交面积。 这题的精度有点搞笑。我用比较高的精度来统计面积,居然wa了。把精度降到1e-6瞬间过了。——written by Lyon 阅读全文
摘要:
ZOJ :: Problems :: Show Problem1436 -- Horizontally Visible Segments 用线段树记录表面能被看见的线段的编号,然后覆盖的时候同时把能看到的线段记录下来。这里要用到拆点,在两个整点之间插入一个点。 最后O(n^2)统计三角形的个数,因为每条线段可以看见的另外的线段的条数不多,所以可以直接枚举两条边。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 const int N = 16666... 阅读全文
摘要:
Problem - 2892 这道题的做法是以圆心为原点,对多边形进行三角剖分。题目描述中,多边形的可能是顺时针或者是逆时针给出,不过在我的做法里,是用有向面积来计算的,和常见的多边形面积的求法类似,不过就是多了三角形与圆交的情况。三角形于圆交的情况共三种(因为这里的三角形其中一个点是圆心,另外两个点是多边形上相邻的两个顶点,所以我们只考虑多边形的边与圆相交的情况):与多边形的边(一条线段)没有交点,一个交点,两个交点。 敲这份代码最大的问题是敲的过程中有很多小错误,导致最后花了将近小时来debug。——written by Lyon 阅读全文
摘要:
1039 -- Pipe 理解错题意一个晚上。_(:з」∠)_ 题意很容易看懂,就是要求你求出从外面射进一根管子的射线,最远可以射到哪里。 正解的做法是,选择上点和下点各一个,然后对于每个折点位置竖直位置判断经过的点是否在管中。如果是,就继续找,如果不在管中,这时射线必然已经穿过管出去了,这时就要找射线和管上下壁的交点。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 const double EPS = 1e-6;11 ... 阅读全文