题意:S是平面内点的集合,初始为空,每次向集合里面加入一个点P(x,y),询问S内最近点对的距离的平方和 思路:设当前集合的答案为D,则找到集合里面横坐标在(x-√D,x+√D)内的数,用它们来更新答案,一边更新答案一边还要更新右边界x+√D,此时的更新注意不要用浮点数开平方算具体右边界,改用判断即可,否则超时. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4631 数据是随机的,没有极端数据,所以可以分段考虑,最小值是一个单调不增的函数,然后每次分治算平面最近点对就可以了... //STATUS:G++_AC_10390MS_23804KB #include <functional> #include <algorithm> #include <iostream> //#include <ext/rope> #inc…
早上起来头有点疼,突然就想到能不能用kd树解平面最近点对问题,就找了道题试了一下,结果可以,虽然效率不高,但还是AC了~ 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1007 题目要求平面上最近点对间距离的一半. 思路如下:先建立一棵树,所有点插入树中,之后为每个点查询其最近点,枚举找到最小值.注意查询的时候不要让点自己跟自己比.个人感觉,这种写法也可以达到O(nlogn)的复杂度.建树分区间的时候,按x,y中跨度大的一个来分,应该就接近O(nl…
HDU-4622 Reincarnation 题意:给定一个字符串,有Q次询问,每次询问得出区间[L, R]内有多少个不同的子串. 分析:后缀数组搞,不过hash+dp也能够搞定这题,详解见http://www.cnblogs.com/Lyush/p/3233573.html. #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> #include <algor…
Description 小V是中南大学图书馆的图书管理员,每天要整理很多同学们还回来的书.久而久之,他认识了很多常来图书馆的同学,比如说小L.简而言之吧,就是小V喜欢上了小L,并且想在下一次她来还书的时候表白.小V的创意还是不错的,他精心准备了各种材料,打算构成"L","O","V","E"四个字母,在小L来的时候悄悄组合起来给她看.但是意外来了:在小L来的时候,小V只准备好了"L","O&quo…
Sad Love Story Time Limit: 40000/20000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 16    Accepted Submission(s): 2 Problem Description There's a really sad story.It could be about love or about money.But love wi…
题意:一个空平面,每次增加一个点, 其坐标根据上一个点算出:(x[i-1] * Ax + Bx ) mod Cx,(y[i-1] * Ay + By ) mod Cy 求出现有点集中的最近点对的距离的平方,共增加n个点,求每次求得的平方的和 http://blog.csdn.net/liuledidai/article/details/9664031 /* set+最近点对 每次对于一个新插入的点,找出x与之最近的,然后分别向两侧搜 题意:一个空平面,每次增加一个点, 其坐标根据上一个点算出:(…
http://acm.hdu.edu.cn/showproblem.php?pid=4631 题意: 在平面内依次加点,求每次加点后最近点对距离平方的和 因为是找平面最近点对...所以加点以后这个最短距离一定是递减的...所以最后会形成这样一个函数图像 所以我们只要从后往前依次删点即可... 15秒惊险水过...不过我最小点对的木板肯定写挂了,卡时限的话估计过不了... 请用G++交...C++会TLE...当然我也无法解释这个问题...估计是我傻逼 /*********************…
最近点问题:二维平面中有n(n很大)个点,求出距离最近的两个点 思路:因为n的值很大,所以暴力和dp都行不通了吧!分治法就挺好的. 将区间一半一半的分开,直到分成只有一个点或两个点的时候! 对于只有两个点的区间,最小值就是这两个点的距离,只有一个点的区间, 最小值就是无穷大.注意还要考虑合并的时候,可能距离最近的两个点, 分别在左右两个不同的区间.对于这种情况的处理如下: mid=(ld+rd)/2; ans = min(solve(ld, mid), solve(mid+1, rd));得到两…
一.前言 Java的枚举类型相对C#来说具有更灵活可配置性,Java的枚举类型可以携带更多的信息. // C# enum MyColor{ RED = , BLUE = } Console.Write(MyColor.RED); // Java enum MyColor{ RED(), BLUE(); private String mood; public String getMood{ return mood; } private int index; public int getIndex(…