<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      尋找最近點對

      算法導論上一個經典算法,講解可看 http://yzmduncan.iteye.com/blog/1432880 

       

      AC代碼的復雜度為 n*lgn*lgn,算法導論上講還可以通過“預排序”,不用每次都按照y排序,復雜度可下降為n*lgn。

       

      http://acm.hdu.edu.cn/status.php  上可以AC。

      #include<stdio.h>
      #include<math.h>
      #include<algorithm>
      
      using namespace std;
      
      #define MAX 100005
      #define Inf 2e20
      
      struct Point {
          double x;
          double y;
      };
      
      Point a[MAX];
      Point tmp[MAX];
      
      int cmpX(Point a, Point b) {
          return a.x < b.x;
      }
      int cmpY(Point a, Point b) {
          return a.y < b.y;
      }
      
      double dis(Point* a, int i, int j) {
          return sqrt(
                  (a[i].x - a[j].x) * (a[i].x - a[j].x)
                          + (a[i].y - a[j].y) * (a[i].y - a[j].y));
      }
      
      double minDis(int left, int right) {
          double d = Inf;
          if (left == right)
              return d;
          if (left + 1 == right) {
              return dis(a, left, right);
          }
          if (left + 2 == right) {
              return min(min(dis(a, left, left + 1), dis(a, left, right)),
                      dis(a, left + 1, right));
          }
      
          int mid = left + (right - left) / 2;
          double minLeft = minDis(left, mid);
          double minRight = minDis(mid + 1, right);
          d = min(minLeft, minRight);
      
          int k = 0;
          for (int i = left; i <= right; i++) {
              if (fabs(a[mid].x - a[i].x) <= d) {
                  tmp[k].x = a[i].x;
                  tmp[k].y = a[i].y;
                  k++;
              }
          }
      
          sort(tmp, tmp + k, cmpY);
      
          for (int i = 0; i < k; i++) {
              //j<i+8優化,否則會超時
              for (int j = i + 1; j < k && j < i + 8; j++) {
                  if (dis(tmp, i, j) < d) {
                      d = dis(tmp, i, j);
                  }
              }
      
          }
          return d;
      
      }
      
      int main() {
          freopen("my.in", "r", stdin);
          int n;
          while (scanf("%d", &n) != EOF) {
              if (n == 0)
                  break;
              for (int i = 0; i < n; i++) {
                  scanf("%lf%lf", &a[i].x, &a[i].y);
              }
              sort(a, a + n, cmpX);
              double res = minDis(0, n - 1);
      
              printf("%.2lf\n", res / 2);
          }
      
          return 0;
      }

       

      posted @ 2014-09-04 17:43  jdflyfly  閱讀(381)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久无码中文字幕免费影院蜜桃| 亚洲日韩中文字幕在线播放| 久章草在线毛片视频播放| 亚洲曰韩欧美在线看片| 少妇精品视频一码二码三| 中文字幕久久精品波多野结| 亚洲av免费成人在线| 国模少妇无码一区二区三区| 中文字幕无码免费久久99| 国产精品日韩av在线播放| 么公的好大好硬好深好爽视频| 国产精品国产三级国快看| 国产无码高清视频不卡| 中文字幕在线日韩| 亚洲国产精品久久综合网| 亚洲av综合色区无码专区| 国99久9在线 | 免费| 日韩高清在线亚洲专区国产 | 武强县| 国产91丝袜在线播放动漫| 成人精品视频一区二区三区| 国产精品一二三区视在线| 亚洲国产午夜精品理论片在线播放 | 国产精品亚洲二区亚瑟| 3d动漫精品一区二区三区| 在线精品国产中文字幕| 中文字幕有码高清日韩| 撕开奶罩揉吮奶头视频| 中文字幕乱偷无码av先锋蜜桃| 亚洲综合网一区中文字幕| 欧美激情 亚洲 在线| 精品国产女同疯狂摩擦2| 自拍偷拍第一区二区三区| 亚洲av无码精品色午夜| 亚洲第一精品一二三区| 国产一区二区三区黄色片 | 日本免费观看mv免费版视频网站 | 国产精成人品日日拍夜夜 | 日韩在线视频观看免费网站| 亚洲一区二区中文字幕| 亚洲国产成人无码影片在线播放|