摘要:
题意:给你n个点(4~700),问你能够成多少个不同的凸四边形。题解:只要求所有凹四边形即可。对于每个点,凹四边形的个数等于:C(n-1,3)-在这个点同一侧三点构成的三角形的个数。对于凸多边形的一个顶点,其他顶点必然在穿过这个顶点的直线的同侧。处理这个有一个好方法,我以前一直没发现。算极角时,如果是负数(-pi ~ 0),就把它加上2 * pi,这样就把角度统一到了0~2pi。另外,向这题顺次统计两个点的夹角时,由于会出现转了一圈的情况不好计算角度,所以在原来数组后面再顺次加上n-1一个点,角度同一加2pi这个方法真的很好用~View Code 1 #include <iostream 阅读全文
摘要:
题意:给了n(n<50000)圆的圆心坐标和半径,任意两个圆不会相切或者相交,也就是说只存在内含和相离两种关系,问最深的那个圆被嵌套了多少次。题解:抄的别人的。。然后自己还不会nlogn的实现。。后来看别人代码,发现,set用的太神了!比较函数中有一个变量,但是这个变量的改变并不会影响set的形态!所以不会出问题!http://hi.baidu.com/bobo__bai/item/17f7b28bd5994a5d850fab39View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <c 阅读全文
摘要:
题意:一只蚂蚁,只会向左转,现在给出平面上很多个点,求解一种走法,能使得蚂蚁能经过的点最多,每个顶点该蚂蚁只能经过一次,且所行走的路线不能发生交叉.题解:不停地做凸包,将左右栈中弹出的元素继续做凸包,知道没有元素弹出为止。应该是对的吧,没写。。。。懒死啦。。。 阅读全文