uva 10245 近期点对问题】的更多相关文章

分治法的典例 当练手了 奇妙的是.使用inplace_merge按说应该是O(n)的算法.可是用sort nlogn的算法反而更快 先上快排版 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int SIZE = 10000+10; const doub…
题意,给出n个点的坐标,找出两点间最近的距离,如果小于10000就输出INFINITY. 纯暴力是会超时的,所以得另辟蹊径,用分治算法. 递归思路将点按坐标排序后,分成两块处理,最近的距离不是在两块中的一块中,就会存在于跨越中线的点对中. 查找跨越中线的点比较麻烦,之前已经求出两块中的最小距离,只要在x范围在[m-d,m+d]的点中找对,更新最小距离,最后返回最小距离即可. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * Blog: http:…
Problem JThe Closest Pair ProblemInput: standard inputOutput: standard outputTime Limit: 8 secondsMemory Limit: 32 MB Given a set of points in a two dimensional space, you will have to find the distance between the closest two points. Input The input…
题意:求任意两点之间的距离的最少一个距离 思路:枚举一下就可以了 #include <iostream> #include<cstdio> #include<cmath> using namespace std; #define N 10010 struct node{ double x,y; }p[N]; int main(int argc, char** argv) { int n,i,j; double mdist,tmp; while(scanf("%…
题意:给定 n 个点,求最近两个点的距离. 析:直接求肯定要超时的,利用分治法,先把点分成两大类,答案要么在左边,要么在右边,要么一个点在左边一个点在右边,然后在左边或右边的好求,那么对于一个在左边一个在右边的,我们可以先求全在左边或右边的最小值,假设是d,那么一个点在左边,一个点在右边,那么横坐标之差肯定小于d,才能替换d,同样的纵坐标也是,并且这样的点并不多,然后就可以先选出来,再枚举. 代码如下: #pragma comment(linker, "/STACK:1024000000,102…
题目链接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=21269 题意: 求平面最近点对. 分析: 经典问题. n比较大,直接枚举不可. 与上一道的树分治类似,我们也可以将点按照x坐标分成两类. 假设把所有点按照x坐标分成两类,那么有如下两种情况: 点p,q同属于左半边 点p,q一个属于左边一个属于右边 同样,对于第一种情况我们采用递归即可求解. 对于第二种情况,由于已经知道第一种情况下的最小距离d,所以我们只需…
虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=40741#overview 1. A UVA 10602 Editor Nottoobad 好像是俄罗斯NOI的题目,题意是给定n个字符串,然后重新安排字符串的顺序,使得最后需要打的字母总数最少.当前单词和前一个单词相同的前面部分可以不用打, 只需打…
看懂题目意思.他的意思是求将全部的城市走一遍,危急度最小.而且给 你两个s,t后让你求在走的时候,从s到t过程中危急度最大的值,并输出它, 然后就是怎样攻克了,这个题目能够说简单,也能够说难 通过思考能够知道s到t的路径进行遍历就是所谓的答案了 所以通过LCA算法就能够解决这个问题,大家能够去看看LCA在图论上的算法 /* Author: 2486 Memory: 0 KB Time: 2222 MS Language: C++11 4.8.2 Result: Accepted VJ RunId…
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=1544">click here~ 此题我预计是加强过数据,在我纠结了非常久的时候我交了好几份网上的代码不是WA就是TLE.在我非常迷茫的时候我又交了一份,AC了(尽管我用随机数据找到了他代码一个不能过的数据). 给了我信心.然后我拿他的代码用随机数跟我的代码进行測试.再用FC找不同..发现了一个致命的错误.一般来说,BFS或者DFS都是须要…
UVA 11423 - Cache Simulator (树状数组) option=com_onlinejudge&Itemid=8&category=523&page=show_problem&problem=2418" style="">题目链接 题目大意:模仿磁盘缓冲区的工作机制,给你n个不同size的(递增的)磁盘缓冲区.给你要訪问的数据,依据LRU原则,问每一个size的磁盘分别有多少次miss(数据没有在缓存中就是miss).…