摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007本类题的做法思想就是不断的二分,直到剩余两个点或者三个点时直接算。这里存在的一个问题就是可能最近的点对不在二分的左右区间里,而是跨越两个区间,所以我们在做时刚开始时,对x轴由小到大排序,然后二分,在二分之后已经得到一个最小值ans,把在中心线左右ans内的点选出来,把这个区间的点按y坐标由小到大排序,由于这些点的个数有限,所以可以直接求,这里还可以有个优化,如果y方向上的差值大于ans的话 就可以break原因是y坐标是有序的从小到大。View Code 1 #include<cmath 阅读全文
posted @ 2012-03-23 17:43 我们一直在努力 阅读(347) 评论(1) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392在判断左旋和右旋时 ,有多种方法, 其实质都是一样的View Code 1 /*#include <iostream> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdio> 5 #include <algorithm> 6 using namespace std; 7 struct ss { 8 double x,y; 9 }point[110],stack[110]; 阅读全文
posted @ 2012-03-23 16:28 我们一直在努力 阅读(168) 评论(0) 推荐(0) 编辑